私の Android アプリでは、ActionBarSherlock を使用して 2 つのメニュー項目を表示しています。1 つは、アクション ビューが折りたたまれた検索項目です。さらに、アクション バーは に設定されActionBar.NAVIGATION_MODE_TABS
、3 つのタブが含まれています。これらのタブは、十分なスペースがある場合はアクション バーに表示され、そうでない場合はアクション バーの下に表示されます。
私の問題は、バーのタブに十分なスペースがあるデバイスで発生します。
検索アクション ビューが拡張されている場合は、タブの代わりに表示されます。これは問題ありません。
ただし、デバイスを回転させて検索アクション ビューを拡張すると、タブが新しい向きで再表示され、検索アクション ビューに重なって表示されます。
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));
}