2

でActionBarSherlockを使用していNAVIGATION_MODE_TABSます。各タブにはカスタムビューが含まれています。ポートレートモードでは問題なく表示されますが、タブがドロップダウンリストとして表示される場合(Androidによって自動的に実行される)、ランドスケープモードでは多くの問題があります。

  • Android 4.x:選択したタブはアクションバーに表示されません(画像の赤い円を参照)。Android SDKの組み込みのアクションバーを直接使用する場合も、同じことが起こります。
  • Android 2.x:選択したタブはアクションバーに表示されません。ドロップダウンをクリックするとすぐに、ドロップダウン全体が消え、代わりに空のタブが表示されます。

アクションバーに選択したタブが表示されない

カスタムビューを使用しない場合は、すべて正常に機能します。画像上にActionBarを作成する私のコード(意図的にシンプルに保たれています):

getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
for (int i = 0; i < 7; i++) {
    ActionBar.Tab tab = getActionBar().newTab();
    TextView view = new TextView(this);
    view.setText("This is tab " + (i + 1));
    tab.setCustomView(view);
    tab.setTabListener(this);
    getActionBar().addTab(tab);
}

私は何か間違ったことをしていますか?

編集:明確にするために、getSupportActionBar()は元のコードに存在し、ActionBarSherlockのアクションバーは、説明されている問題とは別に正常に機能しています。上記のコードサンプルを使用して、組み込みのアクションバーを使用するときに最初の問題(選択したタブはアクションバーに表示されません)も存在することを示しました。混乱させて申し訳ありません。

4

2 に答える 2

1

ActionBarSherlock を使用getSupportActionBar()すると、2.x で動作するために使用する必要があります。

getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
for (int i = 1; i <= 3; i++) {
    ActionBar.Tab tab = getSupportActionBar().newTab();
    tab.setText("Tab " + i);
    tab.setTabListener(this);
    getSupportActionBar().addTab(tab);
}

テキストの色は、タブに適用しているカスタム ビューから、またはアクティビティ レベルで適用しているテーマから取得されます。

于 2012-11-19T04:37:38.010 に答える