http://www.android123.com.cn/androidkaifa/777.html
Action Bar是android3.0一个重要的内容,Action Bar主要是用于代替传统的标题栏,对于Android平板设备来说屏幕更大它的标题使用Action Bar来设计可以展示更多丰富的内容,方便操控。
Action Bar主要功能包含:
1. 显示选项菜单
2. 提供标签页的切换方式的导航功能,可以切换多个fragment.
3. 提供下拉的导航条目.
4. 提供交互式活动视图代替选项条目
5. 使用程序的图标作为返回Home主屏或向上的导航操作。
首先我们一起来看下Action Bar代替传统Title的效果,下面一个平板应用的标题栏,是不是图标很大啊。
1,新建menu/menu_bar.xml
注意上面的android:actionViewClass和android:actionLayout属性:
actionLayout是制定一个layout xml布局文件,actionViewClass是指定一个类。
这里使用了系统自带的android.widget.SearchView控件,在代码中的使用如下。
2,代码
Action Bar是android3.0一个重要的内容,Action Bar主要是用于代替传统的标题栏,对于Android平板设备来说屏幕更大它的标题使用Action Bar来设计可以展示更多丰富的内容,方便操控。
Action Bar主要功能包含:
1. 显示选项菜单
2. 提供标签页的切换方式的导航功能,可以切换多个fragment.
3. 提供下拉的导航条目.
4. 提供交互式活动视图代替选项条目
5. 使用程序的图标作为返回Home主屏或向上的导航操作。
首先我们一起来看下Action Bar代替传统Title的效果,下面一个平板应用的标题栏,是不是图标很大啊。
1,新建menu/menu_bar.xml
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/menu_add" android:icon="@android:drawable/ic_menu_add" android:title="新增" android:showAsAction="ifRoom|withText" /> <item android:id="@+id/menu_save" android:icon="@android:drawable/ic_menu_save" android:title="保存" android:showAsAction="ifRoom|withText" /> <item android:id="@+id/menu_search" android:title="Search" android:icon="@android:drawable/ic_menu_search" android:showAsAction="ifRoom|withText" android:actionViewClass="android.widget.SearchView" /> <!-- android:actionLayout="@layout/searchview" --> </menu>
注意上面的android:actionViewClass和android:actionLayout属性:
actionLayout是制定一个layout xml布局文件,actionViewClass是指定一个类。
这里使用了系统自带的android.widget.SearchView控件,在代码中的使用如下。
2,代码
public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_bar, menu); SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView(); searchView.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub //这里才有反应! Toast.makeText(Honeycomb.this, "Honeycomb", Toast.LENGTH_SHORT).show(); } }); return super.onCreateOptionsMenu(menu); } public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: // 当左上角标题栏图标被单击时 Toast.makeText(this, "home", Toast.LENGTH_SHORT).show(); break; case R.id.menu_add: Toast.makeText(this, "menu_add", Toast.LENGTH_SHORT).show(); break; case R.id.menu_save: Toast.makeText(this, "menu_save", Toast.LENGTH_SHORT).show(); break; case R.id.menu_search: //不会有反应! Toast.makeText(this, "menu_search", Toast.LENGTH_SHORT).show(); break; } return super.onOptionsItemSelected(item); }