2011-12-05 10 views
2

ActionItemにアイコンとテキストの両方があり、ActionBarが分割されている場合は、showAsAction="always|withText"の場合でもアイコンが表示されます。分割されたテキストActionBar

テキストを強制的に表示する方法はありますか?

答えて

4

withTextはシステムへのヒントです。幅が制約されたデバイスまたは構成では、システムは無視することを選択できます。

+2

に役立ちますが、これはスプリット 'ActionBar'で唯一の項目である(それ自体に4.65インチの画面全体の幅を有している)場合でも、それはまだ現れていません。アイコンがない場合は、テキストが表示されます。 – keyboardr

+1

それは正しいです。アイテムの数または測定されたサイズは、テキスト+アイコンを一度に表示するというシステムの決定には関係しません。これは、完全にデバイスの構成に基づいています。 (画面の大きさ、向きなど) – adamp

+0

スプリット 'ActionBar'にテキスト+アイコンが表示されることはありますか? – keyboardr

2

私は最近同じ問題を抱えていましたが、既にadampによって答えられているように、強制的にテキストを "withText"オプションで表示する方法はありません。

これは実際には、Googleカレンダーの[イベントの編集/作成]画面(アクションバーの[キャンセル]と[保存]ボタンの両方、テキスト付き)のように、アクションバーのカスタム表示で行うことができます。

それは

https://android.googlesource.com/platform/packages/apps/Calendar

をどのように行われるか

のres /レイアウト/ edit_event_custom_actionbar.xml

でアクションバーのカスタムビューのレイアウトもあって下さいあるのGoogleカレンダーのソースをチェック関連するスタイルを確認する

これはEditEventFragのアクションバーに適用されますクラスonCreateView

if (mUseCustomActionBar) { 
    View actionBarButtons = inflater.inflate(R.layout.edit_event_custom_actionbar, 
      new LinearLayout(mContext), false); 
    View cancelActionView = actionBarButtons.findViewById(R.id.action_cancel); 
    cancelActionView.setOnClickListener(mActionBarListener); 
    View doneActionView = actionBarButtons.findViewById(R.id.action_done); 
    doneActionView.setOnClickListener(mActionBarListener); 

    mContext.getActionBar().setCustomView(actionBarButtons); 
} 

イベントハンドラもそこに割り当てられます。

アクションバーの表示オプションは、EditEventActivityクラスでのonCreateメソッドを設定されています

getActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM,      
     ActionBar.DISPLAY_HOME_AS_UP | ActionBar.DISPLAY_SHOW_HOME| 
     ActionBar.DISPLAY_SHOW_TITLE | ActionBar.DISPLAY_SHOW_CUSTOM); 

これは私がこれまでに考え出したものです。アクションバーの標準メニュー設定を使用する他の画面オプション(タブレット)にはいくつかの追加設定がありますが、同様のレイアウト、スタイル、および自分のコード内の2つのスニペットを使用して、期待される結果(テキスト付きのアクションバー項目)を生成しました。

希望これは右

+0

リンクを開くことができませんか? Googleカレンダーがオープンソースであるかどうかわかりません。 – molikto

関連する問題