8

ロゴ、タイトル、3つのタブ、1つのアクションアイテムを備えたActionBarがあります。

ポートレートモードでは、タブが次のようにスタックされたActionBarに移動されるため、すべてが良好に見えます。__ _ __ _ __ _ __ _ __ _ __
#私の
タイトル¤__ __ _ __ _ __ _ __ ____タブ1 |
タブ2| タブ3___
__ _ __ _ __ _ __ _ __ _

ただし、横向きモードでは、タブ上部ActionBarに移動するため、タイトルが切り捨てられますようなります
。タブ1| タブ2| タブ3| ¤ ______
__ _ __ _ __ _ __ _ __ _ __ _ __ _ _ _

とにかく、タイトルが切り捨てられてはならないことをActionBarに伝えることができますか?そうでない場合、少なくともタイトルの幅を設定できますか?(横向きモードでもタブがスタックされたActionBarに移動しても問題ありません)

編集:

コードが要求されました。ここにあります:

public class MyActivity extends SherlockFragmentActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    ActionBar actionBar = super.getSupportActionBar();
    actionBar.setHomeButtonEnabled(true);
    actionBar.setDisplayHomeAsUpEnabled(true);
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

    actionBar.setTitle("My Long Title");

    actionBar.addTab(actionBar
            .newTab()
            .setText("Tab 1")
            .setTabListener(
                    new TabListener<MyFragment>(this, "tab1",
                            MyFragment.class, null)));
    actionBar.addTab(actionBar
            .newTab()
            .setText("Tab 2")
            .setTabListener(
                    new TabListener<MyFragment>(this, "tab2",
                            MyFragment.class, null)));
    actionBar.addTab(actionBar
            .newTab()
            .setText("Tab 3")
            .setTabListener(
                    new TabListener<MyFragment>(this, "tab3",
                            MyFragment.class, null)));
}
}
4

1 に答える 1

0

固定タイトルが必要な場合は、メニューフォルダーの下に次のようなxmlファイルがあると思います

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <group android:id="@+id/group" >
        <item
            android:id="@+id/menu1"
            android:orderInCategory="100"
            android:showAsAction="ifRoom"
            android:title="@string/menu1"/>

        <item 
            android:id="@+id/Search"
            android:actionViewClass="android.widget.SearchView"
            android:icon="@drawable/ic_action_search"
            android:orderInCategory="100"
            android:showAsAction="always"
            android:title="@string/menu3">
        </item>

        <item
           ..............
         </item>

    </group>

</menu>

上記のコードでは、 android:showAsActionが重要な役割を果たします。常に表示するアイテムが必要な場合は、android:showAsAction="always" を使用する必要があります。これにより、問題が確実に解決されます。

私は SherlockFragmentActivity を使用していませんが、これは大いに役立つと思います。

メニューのフォルダーのxmlファイルを介して、javaファイルで次の処理を行うことをお勧めします。コードは次のとおりです:- onCreate() でこれを試してください:-

setContentView(R.layout.activity_action_bar_eg);//this is the xml file name inside the menu folder
getActionBar().setHomeButtonEnabled(true);
getActionBar().setDisplayShowTitleEnabled(false);
ActionBar bar=getActionBar();
bar.show();

この変更により、問題の解決策も変更されます

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        super.onCreateOptionsMenu(menu);
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.activity_action_bar_eg, menu);
}
于 2012-12-18T11:49:33.313 に答える