嗨,我有4个标签的Android APP(让我们说tab1,tab2,tab3,tab4).当活动开始时,默认选项卡是tab1.我切换到任何其他选项卡(tab2,3或4)并更改屏幕方向,它总是重置为默认选项卡(tab1).
我尝试使用以下代码:
@Override
public void onConfigurationChanged(Configuration newConfig)
{
super.onConfigurationChanged(newConfig);
setContentView(R.layout.main);
createView();
}
Run Code Online (Sandbox Code Playgroud)
在createView()里面我有:
private void createView()
{
... // Tabs are created before
tabHost.getTabWidget().setCurrentTab(CurrentTab);
}
Run Code Online (Sandbox Code Playgroud)
CurentTab 是private int并且默认设置为0,但它在TabChange上设置:
public void onTabChanged(String tabId) {
... some code
CurrentTab = tabHost.getCurrentTab();
}
Run Code Online (Sandbox Code Playgroud)
我在这里堆积......有没有其他方法可以解决这个问题?
简而言之: 我希望Tab在屏幕旋转时不会更改为默认值...
我是Java android开发的新手.所以我的应用程序存在问题.
我用phoneGap opensource和Jquery移动框架构建了一个Android应用程序.这通常很好看.
但问题是......当我在运行应用程序后尝试旋转手机时,意外的应用程序正在关闭.
它不仅适用于我的手机,也适用于每款Android手机.
我真的想删除应用程序上的屏幕旋转.
希望你能理解
请帮帮我....
我想制作一个有两个部分的垂直布局的图片库:顶部的图像和下面的水平可滚动图标.我知道怎么做.
但我也想要,当自动旋转时,图标保持在右侧.也就是说,我希望将垂直布局更改为水平布局,将水平滚动条更改为垂直布局.
这该怎么做?任何线索/链接将不胜感激.
谢谢!
L.
在执行旋转动画之前,是否可以在iOS上获得"将旋转"通知?喜欢的UIViewController方法willRotateToInterfaceOrientation:duration:.
我知道UIDeviceOrientationDidChangeNotification,但是在旋转动画执行后似乎发送了一个.
我在NSObject视图控制器之外的子类中工作.
如果没有这样的通知,我正在考虑一个hack,例如向视图层次结构添加"假"视图(到rootViewController视图?),并覆盖layoutSubviews以发送自定义通知.是否有一个不那么强硬的替代方案?
我有一个带有2个初始控制器的SplitViewController应用程序:
我的rightViewController(详细信息)有splitViewController的委托,用于显示显示/隐藏我的菜单的按钮(主)
我的leftViewController(master)是一个菜单应用程序,当我选择menú的任何元素时,我触发了一个连接到我的master的segue,它替换了我的detailViewController用于所选择的菜单元素
当我这样做,如果我尝试将我的iPhone旋转为隐藏菜单,我的应用程序崩溃并说:
*** -[rightViewController respondsToSelector:]: message sent to deallocated instance
Run Code Online (Sandbox Code Playgroud)
我想这是因为我的splitViewController想要与它的委托,它的旧rightViewController进行通信,但是它已经消失了,它已被我的视图所取代,
也许我需要:
将我的委托重新分配给我的新viewController(详细信息)或删除我的rightViewController的委托并将其分配给我的newViewController
也在我的新viewController中试过这个:
@interface newViewController ()<UISplitViewControllerDelegate>
@end
@implementation newViewController
- (void)viewDidLoad
{
UISplitViewController *splitViewController = (UISplitViewController *)self.view.window.rootViewController;
UINavigationController *navigationController = [splitViewController.viewControllers lastObject];
splitViewController.delegate = (id)navigationController.topViewController;
}
...
@end
Run Code Online (Sandbox Code Playgroud)
但仍然没有工作...我得到了同样的信息
我该如何解决???
提前致谢
编辑:添加我的segue代码,以帮助回答我的问题
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if ([segue.identifier isEqualToString:@"viewSceneAgenda"]) {
[segue.destinationViewController setTitle:@"Citas"];
[segue.destinationViewController setUserIDElement:UID_CUS];
[segue.destinationViewController setOverallAppointments:overallDates];
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个popover,我从那里提出我TabBarItem为什么要进去AppDelegate,但popover如果屏幕方向已经改变,我需要在新的地方重新显示.在我的应用程序的其他地方我只是使用该didRotateFromInterfaceOrientation方法,但它没有调用AppDelegate.我怎么解决这个问题?
我通过以下代码呈现一个popover:
- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController
{
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
if (viewController == [self.objTabBarController.viewControllers objectAtIndex:2])
{
if (self.settingsPopover == nil) {
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main - iPad" bundle: nil];
SettingsViewController *settingsController = [mainStoryboard instantiateViewControllerWithIdentifier: @"SettingsPopover"];
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:settingsController];
self.settingsPopover = [[UIPopoverController alloc] initWithContentViewController:navigationController];
CGSize tabBarSize = self.objTabBarController.tabBar.frame.size;
CGPoint center = [self.window.rootViewController.view convertPoint:self.objTabBarController.tabBar.center fromView:self.objTabBarController.tabBar.superview];
center.x += 105;
center.y -= tabBarSize.height / 2; …Run Code Online (Sandbox Code Playgroud) 我正在考虑在接下来的几个月中构建我的第一个 iOS 应用程序。这是一个混合应用程序:
https://fanmixco.github.io/toastmasters-timer-material-design/
此时已完全迁移到 Android 和 Windows 10。但是,我在 Android 中面临的最大挑战之一是屏幕旋转:
这种情况处理起来非常复杂,因为每次我的应用程序旋转时,活动都会被破坏,我需要添加几种解决方法以保持应用程序运行,恢复以前的状态,颜色,在旋转之前停止计时器,因为它们一直在运行在后台等
我在 Windows 10 中没有遇到任何类似的情况,我想知道 iOS 视图生命周期的行为是否密切,视图是否在任何设备的旋转过程中被破坏?因为我的解决方法是可重用的,但它们增加了一定的复杂性并降低了性能。
这些是我阅读的一些网站:
尽管如此,我还没有找到任何关于这个主题的确切信息。
聚苯乙烯
我的应用程序针对每个方向具有非常不同的UI结构
我应该在iPad的旋转生命周期的哪个阶段删除,然后添加方向的UI以确保最顺利的过渡?
我正在开发一个Android应用程序,我不喜欢它在用户旋转屏幕时旋转.用户将只能使用纵向视图,而不能使用横向视图.
前言。我知道这个问题过去曾被问过几次,但是没有一个解决方案对我真正有效。提出类似问题(根据经过时间过滤的Google搜索)也已经有好几年了,因此大多数较早的答案都已过时。如果有什么办法可以使我更清楚地编辑问题,请告诉我。
问题。单击任何一个旋转按钮时,仿真器本身都会旋转,但是用户界面和应用程序内容不会相应地重绘,因此我不得不倾斜头部(违背了旋转设备的目的)。
技术指标
屏幕截图
android android-virtual-device android-emulator screen-rotation android-studio
screen-rotation ×10
android ×6
ios ×5
ipad ×2
objective-c ×2
rotation ×2
appdelegate ×1
cocoa-touch ×1
cordova ×1
java ×1
layout ×1
tabs ×1