Android ActionBar已经逐渐在取代Menu的使用,今天来介绍下ActionBar的视图切换,首先看下Actionbar的设计说明
图中已经表明了各部分的名称,图中1为ActionBar向上导航功能,具体参考之前的文章: ActionBar的向上导航和返回键。
图中2即为ActionBar的View control。用于切换不同的视图功能。用法如下:
public class ActionBarDemo extends Activity {
ActionBar actionBar;
ActionBar.OnNavigationListener listener;
ArrayAdapter<String> arrayAdapter;
//ActionBar的下拉菜单的菜单项
String[] viewTypes = new String[]{"All Record", "Quick Look"};
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTheme(android.R.style.Theme_Holo);
//之所以写上setTheme()方法是为了强调一下ActionBar的代码要放在setTheme()之后,
//setContentView之前
requestWindowFeature(Window.FEATURE_ACTION_BAR);
actionBar = getActionBar();
//将ActionBar的操作模型设置为ActionBar.NAVIGATION_MODE_LIST.
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
actionBar.show();
setContentView(R.layout.main);
//实现ActionBar.OnNavigationListener接口,当点击ActionBar的菜单项是进行相应的操作
listener = new ActionBar.OnNavigationListener() {
@Override
public boolean onNavigationItemSelected(int itemPosition, long itemId) {
switch (itemPosition) {
case 0:
//点击第一个菜单项时 do something
return true;
case 1:
//点击第二个菜单项时 do something
return true;
default:
return true;
}
}
};
initQuickLook();
}
//初始化ActionBar的下拉菜单的菜单项
protected void initQuickLook() {
arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, viewTypes);
//为ActionBar添加适配器和监听器.
actionBar.setListNavigationCallbacks(arrayAdapter, listener);
}
}
图中3,4即为常见的菜单项。本文主要介绍了图2部分的用法。