5

我目前正在支持我的应用程序,使其在3.0之前使用actionbarsherlock在设备上工作。ActionbarSherlock - 制表符在横向取向没有响应

如果用户以纵向模式启动应用程序,然后旋转屏幕并尝试选择标签,则在用户执行其他操作之前不会发生任何事情。这样做的当前版本可以在这里下载(sherlock-alpha1)http://tinyurl.com/cz95nup

标签都按以下方式

 bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 
     bar.addTab(bar.newTab().setText("tab1").setTabListener(this),false); 
     bar.addTab(bar.newTab().setText("tab2").setTabListener(this),false); 
     bar.addTab(bar.newTab().setText("tab3").setTabListener(this),false); 

加入,如果你推出景观的应用程序,然后在纵向模式下使用它(人像选项卡将无法正常工作),也会出现这种情况。

它在运行本机操作栏的设备上正常工作。

+0

你现在在运行什么minSDKversion? – Davek804 2012-04-08 16:29:23

+0

@ Davek804 android:minSdkVersion =“7” – bencallis 2012-04-08 16:34:33

+0

我最近做了同样的事情,我没有遇到这个错误。如果将minVersion切换到10,它是否仍然会发生?你在测试什么版本的设备?是AVM吗? – Davek804 2012-04-08 16:35:29

回答

11

您是否正在处理清单中的配置更改?

android:configChanges="orientation" 

如果是这样,这是不允许的假装潢认为ActionBarSherlock安装在旋转,这将导致很多问题需要重新初始化。

应尽可能谨慎地使用处理配置更改。该文件指出it should be used as a last resort

该库的未来版本将有望能够说明选择这样做的人员。

+0

我有一种感觉,它可能与此有关。我将不得不重新工作我的代码。它目前用于停止重新下载列表,并根据方向更改配置列表片段的宽度。任何简单的想法如何以不同的方式做到这一点?感谢您的支持。 – bencallis 2012-04-10 16:28:07

0

我遇到同样的问题。我不得不添加这些线,并在AVD上确定,不知道它是否在真实设备上工作。

<supports-screens android:largeScreens="true" android:normalScreens="true" android:smallScreens="true" android:anyDensity="true" /> 
+0

Doens't似乎为我工作。 – bencallis 2012-05-23 00:08:22

3

对我来说是方向改变后反应迟钝,而不是在横向模式。 很多试错后,我已经找到了这个bug以下解决方案:

@Override 
public void onConfigurationChanged(Configuration newConfig) { 
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); 
    super.onConfigurationChanged(newConfig); 
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 
} 

关键是要改变导航模式列出又变回标签。

+0

嘿,这真是太棒了! – rocknow 2014-02-03 12:51:59