新しいアクションバーサポートを使用しています。すべてのアクションビューは、バーのアイコンとしてではなく、オーバーフローで表示されます。私のアプリは7+ API用です。
HomeActivity:
public class HomeActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
ActionBar actionBar = getSupportActionBar();
actionBar.setTitle(R.string.app_name);
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setHomeButtonEnabled(true);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.home, menu);
return true;
}
}
home.xml
<item
Android:id="@+id/action_settings"
Android:orderInCategory="100"
Android:showAsAction="never"
Android:title="@string/action_settings"/>
<item
Android:id="@+id/action_browse"
Android:orderInCategory="100"
Android:showAsAction="never"
Android:title="@string/title_activity_browse"/>
<item
Android:id="@+id/action_search"
Android:actionViewClass="Android.widget.SearchView"
Android:icon="@Android:drawable/ic_menu_search"
Android:showAsAction="ifRoom|collapseActionView"
Android:title="@string/text_search"/>
<item
Android:id="@+id/action_scan"
Android:icon="@drawable/action_scan"
Android:showAsAction="always"
Android:title="@string/title_activity_browse"/>
4.3のNexus 7と2.3.3のアイコンなしのLGP500にデプロイしています。また、Android:theme = "@ style/Theme.AppCompat.Light.DarkActionBar"をマニフェストに追加しました。公式ドキュメントで説明されているように、私のプロジェクトはAndroid-support-v7-appcompatを正しく参照しています。
サポートライブラリの属性を使用してmenu
リソースファイルを定義する必要があります。
バックサポートを実装するために、古いAndroid version。
<menu xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:yourapp="http://schemas.Android.com/apk/res-auto" >
<item
Android:id="@+id/action_settings"
Android:orderInCategory="100"
Android:showAsAction="never"
yourapp:showAsAction="never"
Android:title="@string/action_settings"/>
<item
Android:id="@+id/action_browse"
Android:orderInCategory="100"
Android:showAsAction="never"
yourapp:showAsAction="never"
Android:title="@string/title_activity_browse"/>
<item
Android:id="@+id/action_search"
Android:actionViewClass="Android.support.v7.widget.SearchView"
Android:icon="@Android:drawable/ic_menu_search"
Android:showAsAction="ifRoom|collapseActionView"
yourapp:showAsAction="ifRoom|collapseActionView"
yourapp:actionViewClass="Android.support.v7.widget.SearchView"
Android:title="@string/text_search"/>
<item
Android:id="@+id/action_scan"
Android:icon="@drawable/action_scan"
Android:showAsAction="always"
yourapp:showAsAction="always"
Android:title="@string/title_activity_browse"/>
</menu>
[〜#〜] nb [〜#〜]を思い出してくださいSearchViewクラスが変更されました。サポートライブラリのコードが使用されるようになったため、onCreateOptionsMenu()のコードを更新する必要があります
EDIT:here は、ActionBarSherlokからAppCompatに移行する方法に関する非常に優れたチュートリアルです。