0

一部のフラグメントには追加のアクションがあり、ボタンとして に入れたいフラグメントベースのアプリがありますが、一部のフラグメントにはActionBarそのようなアクションがありません。すべてのフラグメントのすべての項目を含む xml メニュー ファイルを作成し、次の組み合わせを使用して現在表示されているフラグメントに応じて、実行時に表示/非表示を切り替えます。

MenuItem item = menu.findItem(some_id);
item.setVisible(false);
MenuItem item = menu.findItem(some_other_id);
item.setVisible(true);

問題は、メニュー項目のないフラグメントを表示しているときに、デバイスの向きを変更してから、メニュー項目のある別のフラグメントに変更すると、それらの項目は表示されずActionBar、デバイスの「メニュー」を使用してのみアクセスできることです。 " ボタン。

すべてのメニュー項目はandroid:showAsAction="always"xml ファイルのように設定されていますActionBarが、メニュー項目のないフラグメントを表示しているときに最後の向きの変更が行われた場合、常に に表示されません。これは、ポートレートからランドスケープへの変更とランドスケープからポートレートへの変更の両方で発生します。

ActionBarアイテムが常に表示されるようにするにはどうすればよいですか?

4

1 に答える 1

2

2 つのポイント:

  1. ActionBar の設計ドキュメントによると、横向きの 10 インチ タブレットでも、以下の表に従ってアクション バーに最大 4 つのアイテムしか表示されません。 ActionBar 内のアイコンの最大数
  2. に表示されるアイテムの最大数を下回っていると仮定すると、ActionBarFragments が表示されたActionBarときに にアイテムを追加し、非表示になったときに削除する場合、単一の xml メニュー ファイル内でアイテムを手動で表示/非表示にする必要はありませんが、代わりに、 Fragments - Action Bar ガイドに項目を追加するFragmentに従って、個々の項目を追加します。
于 2013-05-31T17:25:42.917 に答える