2011-11-18 11 views
5

カスタムビュー(DISPLAY_SHOW_CUSTOM)でタブ付きアクションバー(NAVIGATION_MODE_TABS)を作成したいと思います。 - 私は通常でアクションバーで行うように - 非タブ付きモード、またできるようにカスタムビューとタブでAndroid ActionBarを作成する方法

enter image description here

私は一番上の行のボタンを経由して活動をナビゲートできるようにする必要があります:それはすべきではこのようになります2行目のタブを切り替えることができます。 ActionBarをタブ付きモードに設定すると、カスタムビューが表示されなくなります。タブ付きモードとカスタムビューは互いに排他的です...可能ですか?

ActionBarを使用せずにこれを行う方法がさらにあります。通常、ボタン付きのレイアウトを作成し、TabActivity(これは廃止されました)に含めてください。それだけです。しかし、私はそれが最高の解決策になるとは思わないので、助けや助言をいただければ幸いです。

ありがとうございます。

EDIT:少し研究したところ、私はそれが動作することがわかった、それはちょうど私の4インチの画面に表示されません。しかし、それは私が期待どおりに動作しません。より広い画面では、カスタムビューがタブの右側に表示されます。これは問題ありませんが、4インチの電話画面ではまったく表示されません。

私は最善の解決策は、ActionBarSherlockライブラリを使用することです(私は廃止された機能を使用するのが嫌い、私のアプリはpre-sdk11バージョンのデバイスでも動作しなければなりません)とフラグメント - トップActionBarと、

+0

アクションバーとタブの使用を再検討することがあります。画面が限られているため、あまりにも多くのナビゲーションコントロールがアプリを乱雑にするだけです。私が見ることができるものから、3.5インチまたは4インチの携帯電話では、これは画面のそれ以上ではない場合、ほぼ1/3を占めるだろう。ちょうど考え:)、研究の良い仕事は、その学習するための最良の方法です。 – Jack

+0

残念ながら、再検討することは何もありません。それは私の顧客の要件です...しかし、最後に、前に見落としたエレガントでシンプルなソリューションが見つかりました。一番上の行にあるボタンはoptionMenu項目として追加することができます - 数行とレイアウトが行われます。質問は閉鎖することができます... – vitakot

答えて

0

一番上の行のボタンは、オプションメニュー項目として追加されなければならない。

@Override 
public boolean onCreateOptionsMenu(Menu menu) 
{ 
    for (int i = 0; i < menuItems; i++) 
    { 
     if (i == 0) 
     { 
      menu.add(R.string.home).setIcon(R.drawable.button_home).setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT); 
      menu.getItem(0).setOnMenuItemClickListener(this); 

     } 
    } 

    return super.onCreateOptionsMenu(menu); 
} 

アクションバーの哲学は、私は尋ねるときことになってわずかに異なっています。 Android developer guide:

アクションバーのタブを使用すると、さまざまな画面サイズのアクションバータブが適応されるため、(TabWidgetを使用する代わりに)アクションバーのタブを使用すると便利です画面が十分に広い場合のメインアクションバー、または画面が狭すぎる場合は別のバー(「スタックアクションバー」と呼ばれます)に表示されます。

関連する問題