ActionBar
一, 说明
是一个动作栏 是窗口特性 提供给用户动作 导航模式 可以适配不同的屏幕
二, ActionBar 提供的功能
1. 显示菜单项
always:总是展示到ActionBar
ifRoom:如果actionBar上有剩余空间 展示出来 没有的话 展示到溢出菜单
never:展示溢出菜单
2. 使用应用程序的图片 回到HOME 或者返回到 上一级
3. 自定义View actionView
4. 提供了导航模式
5. 提供了ActionProvider
三, ActionBar 作用
- 提供给用户指定的空间
- 把重要的动作 或容易访问的 动作
- 提供了导航
四, a
1. ActionBar的样式:在清单文件修改主题
换主题 换不同的action样式
android:theme="@style/AppTheme"
android:theme="@android:style/Theme.Light"
android:theme="@android:style/Theme.Holo"
android:theme="@android:style/Theme.Holo.Light"
android:theme="@android:style/Theme.Holo.NoActionBar"
2. ActionBar的显示和隐藏
>隐藏:1,主题 NoActionBar
2,在逻辑代码中 获取ActionBar getActionBar() 控制隐藏
3,requestWindowFeature(Window.FEATURE_NO_TITLE); 在设置布局之前调用
>显示:1,选有ActionBar主题
2,在逻辑代码中 获取ActionBar getActionBar() 控制显示 show()
3. 创建View
>res/menu 添加菜单项
android:showAsAction="always" 菜单项的展示位置
在逻辑代码中使用选项菜单的俩个方法 一个添加菜单项 另一个进行监听
五, 分割栏操作
在清单文件中的 或者
添加属性: android:uiOptions=”splitActionBarWhenNarrow”
六, 启动导航图标
//应用图标是否能点击 带一个向左的箭头
actionBar.setDisplayHomeAsUpEnabled(true);
//应用图标是否能点击 不带箭头
//actionBar.setHomeButtonEnabled(true);
//是否显示应用程序图标
actionBar.setDisplayShowHomeEnabled(true);
note:y应用图标的id:android.R.id.home
七, Action View 的使用
系统控件:包名+类名android:actionViewClass=”” 添加View 如果是系统提供的控件(包名.类名)
>自定义布局 android:actionLayout="@layout/layout" 添加自定义的View
>展开和折叠:
在菜单布局中设置: android:showAsAction="collapseActionView"
可以用按钮设置监听 让菜单项展开和折叠
展开和折叠可以设置监听:
note:方法里的返回值 设置成true 返回false 不会折叠
//展开和折叠的监听
spinnerItem.setOnActionExpandListener(new OnActionExpandListener() {
@Override
public boolean onMenuItemActionExpand(MenuItem item) {
// TODO Auto-generated method stub
tvSHow.setText("==onMenuItemActionExpand===展开====");
return true;//返回false 不会折叠
}
@Override
public boolean onMenuItemActionCollapse(MenuItem item) {
// TODO Auto-generated method stub
tvSHow.setText("==onMenuItemActionCollapse===折叠的====");
return true;
}
});
八, ActionProvider
系统提供者: android:actionProviderClass=”包名.类名”
android:actionProviderClass=”android.widget.ShareActionProvider”
九, ActionBar Tab 导航 通过选项标签来切换Fragment
//获取ActionBar
ActionBar actionBar = getActionBar();
//设置导航模式
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
ActionBar.Tab tab = actionBar.newTab();
tab.setIcon(android.R.drawable.ic_menu_add);
tab.setText("头条");
tab.setTabListener(this);
actionBar.addTab(tab, true);