1去掉标题栏,一定要在setContentView之前写
requestWindowFeature(Window.FEATURE_NO_TITLE);
2 】getActionBar()获取ActionBar对象
】bar.show();显示
】bar.hide();隐藏
// 设置ActionBar的自定义布局可用.
// bar.setDisplayShowCustomEnabled(true);
// 自定义ActionBar的布局.需要和setDisplayShowCustomEnabled()一起使用
// bar.setCustomView(resId);
// 设置ActionBar的标题不可用
bar.setDisplayShowTitleEnabled(false);
// 设置logo图标可用
bar.setDisplayUseLogoEnabled(true);
// 设置显示Home菜单.
bar.setDisplayShowHomeEnabled(true);
// 使得Home菜单可用.
bar.setHomeButtonEnabled(true);
】android.R.id.home ——-ActionBar上home键id,要在菜单监听事件中响应
3 使用Split action bar
在屏幕很窄时(如在portra模式),使用Split action bar可以将所有的action显示在屏幕底部
】在清单文件中的Activity标签设置属性
android:uiOptions=”splitActionBarWhenNarrow”
4 在ActionBar中使用SearchView
第一步,在item中关联actionViewClass
<item
android:id="@+id/actionbar_search"
android:showAsAction="ifRoom"
android:title="搜索"
android:actionViewClass="android.widget.SearchView"/>只能手写
第二步,在onCreateOptionsMenu中找到SearchView并设置监听
MenuItem item=menu.findItem(R.id.actionbar_search);
SearchView sv=(SearchView) item.getActionView();
sv.setOnQueryTextListener(new OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
tv.setText(newText);
// Toast.makeText(getApplicationContext(), newText, 0).show();
return false;
}
});
5 在ActionBar中使用分享功能
第一步: 在item中关联actionProviderClas
<item
android:id="@+id/share"
android:showAsAction="ifRoom"
android:title="分享"
android:actionProviderClass="android.widget.ShareActionProvider"/>
第二步: 在onCreateOptionsMenu中找到ShareActionProvider进行分享功能的设置
getMenuInflater().inflate(R.menu.main,menu);
MenuItem item=menu.findItem(R.id.share);
ShareActionProvider ap=(ShareActionProvider) item.getActionProvider();
Intent intent=new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_TEXT, "穿过来的数据");
//通过setShareIntent开启数据的共享
ap.setShareIntent(intent);
】如果要在自己其它的应用A也想分享该应用B的数据,需要在A的配置文件中过滤相同Intent属性
<intent-filter >
<action android:name="android.intent.action.SEND"/>
<data android:mimeType="text/plain"/>
</intent-filter>
6 使用ActionBar向上导航(跳转到指定Activity,)
】注意:比如A-B-C-D依次跳转,只能是下一级Activity向上跳转,
如 D—A
】使用步骤1: //在D中设置向上导航可用
bar.setDisplayHomeAsUpEnabled(true);
步骤2:在D的清单文件中设置父Activity
android:parentActivityName="com.example.demo.A"
7 使用ActionBar实现Tab导航
】步骤
//获取ActionBar对象
ActionBar bar = getActionBar();
// 导航模式:必须设置.
bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
// 获取tab标签
Tab tab1 = bar.newTab();
// 添加标题
tab1.setText("爱情片");
// 添加页签的图片
tab1.setIcon(R.drawable.ic_launcher);
// tab必须添加监听
tab1.setTabListener(this);
// 添加标签
bar.addTab(tab1);
bar.addTab(bar.newTab().setText("动作片").setTabListener(this));
/************************** TabListener的监听方法 *************************************/
// 当tab被选择的时候调用.tab:当前被选择的标签;ft:用来管理fragment的事务.
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
MyFragment fragment = new MyFragment();
Bundle args = new Bundle();
// tab.getPosition():获取tab所在的位置.从0开始.
args.putInt("position", tab.getPosition());
fragment.setArguments(args);
//ft.add(R.id.ll_container, fragment);
ft.replace(R.id.ll_container, fragment);
}
8 在ActionBar中使用List导航
List<String> l=new ArrayList();
l.add("list1");
l.add("list2");
l.add("list3");
ActionBar bar=getActionBar();
//设置导航模式为List
bar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
//填充适配器
ArrayAdapter<String> adapter=new ArrayAdapter(this,android.R.layout.simple_list_item_1,l);
//设置监听
bar.setListNavigationCallbacks(adapter, new OnNavigationListener() {
@Override
public boolean onNavigationItemSelected(int itemPosition, long itemId) {
return false;
}
});