【发布时间】:2013-02-27 13:43:33
【问题描述】:
在我的 Android 应用程序中,我使用 ActionBarSherlock 来显示两个菜单项。一种是带有折叠操作视图的搜索项。此外,操作栏设置为ActionBar.NAVIGATION_MODE_TABS 并包含三个选项卡。如果有足够的空间,这些选项卡会显示在操作栏中,否则会显示在操作栏下方。
我的问题出现在设备栏中有足够空间容纳选项卡的设备上:
如果搜索操作视图被扩展,它会显示而不是选项卡,这很好:
但是,如果设备旋转,当搜索操作视图被扩展时,选项卡会以新的方向重新出现并与搜索操作视图重叠:
在 Galaxy Tab 10.1N(运行 Android 4.0.4)和 Galaxy Tab 7.0 Plus N(运行 Android 3.2)。 有人知道如何解决这个问题吗?感谢您的帮助!
这里有一些代码:
default_menu.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/SearchMenuItem"
android:icon="@drawable/icon_search"
android:title="@string/Search"
android:actionLayout="@layout/search"
android:showAsAction="always|collapseActionView"/>
<item android:id="@+id/SettingsMenuItem"
android:icon="@drawable/icon_settings"
android:title="@string/Settings"
android:showAsAction="always" />
</menu>
search.xml
<?xml version="1.0" encoding="utf-8"?>
<EditText xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/searchEditText"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingTop="10dip"
android:paddingRight="8dip"
android:hint="@string/Search"
android:textColorHint="@color/white20"
android:textColor="@color/white"
android:textSize="14sp"
android:textCursorDrawable="@null"
android:drawableLeft="@drawable/icon_search_transparent"
android:background="@drawable/edit_text_search"
android:imeOptions="actionSearch"
android:inputType="text"
android:lines="1"
android:maxLines="1"
android:ellipsize="end" />
这是我添加标签的方法:
protected void addTabBar() {
ActionBar ab = getSupportActionBar();
ab.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
ab.addTab(ab.newTab().setText("TAB1").setTabListener(this), false);
ab.addTab(ab.newTab().setText("TAB2").setTabListener(this), false);
ab.addTab(ab.newTab().setText("TAB3").setTabListener(this), false);
ab.selectTab(ab.getTabAt(0));
}
【问题讨论】:
-
有人能重现这个吗?您认为这可能是 ActionBarSherlock 或“原始”ActionBar 中的错误吗?
标签: android rotation android-actionbar actionbarsherlock android-tabs