About ActionBar
The action bar is one of the most important design elements you can implement for your app's activities. It provides several user interface features that make your app immediately familiar to users by offering consistency between other Android apps. Key functions include:
A dedicated space for giving your app an identity and indicating the user's location in the app.
Access to important actions in a predictable way (such as Search).
Support for navigation and view switching (with tabs or drop-down lists).
ActionBar 的创建
如果最低兼容版本小于3.0 --> Support Android 2.1 and Above
Setting Up the Action Bar
1.引用V7-appcompat
> To get started, read the Support Library Setup document and set up the v7 appcompat library
2.Activity继承ActionBarActivity
> Update your activity so that it extends ActionBarActivity
3.在配置清单文件中,android:theme="@style/Theme.AppCompat.Light"
> In your manifest file, update either the <application> element or individual <activity> elements to use one of the Theme.AppCompat themes.
Adding Action Buttons
Add an <item>
element for each item you want to include in the action bar. For example:
res/menu/main_activity_actions.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:yourapp="http://schemas.android.com/apk/res-auto" > <!-- Search, should appear as action button --> <item android:id="@+id/action_search" android:icon="@drawable/ic_action_search" android:title="@string/action_search" yourapp:showAsAction="ifRoom" /> ... </menu>
如果最低兼容版本大于3.0 --> Support Android 3.0 and Above Only
Setting Up the Action Bar
在配置清单文件中,android:theme="@android:style/Theme.Holo..."
Adding Action Buttons
Add an <item>
element for each item you want to include in the action bar. For example:
res/menu/main_activity_actions.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android" > <!-- Search, should appear as action button --> <item android:id="@+id/action_search" android:icon="@drawable/ic_action_search" android:title="@string/action_search" android:showAsAction="ifRoom" /> <!-- Settings, should always be in the overflow --> <item android:id="@+id/action_settings" android:title="@string/action_settings" android:showAsAction="never" /> </menu>
ActionBar的搜索功能
在Activity中,增加以下代码:
public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.activity_main, menu); // 不兼容低版本 SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView(); searchView.setOnQueryTextListener(this); // 搜索的监听 return super.onCreateOptionsMenu(menu); }
public boolean onOptionsItemSelected(MenuItem item) { // Handle presses on the action bar items switch (item.getItemId()) { case R.id.action_search: openSearch(); return true; default: return super.onOptionsItemSelected(item); } }