1.显示隐藏Action Bar

1.配置上

在application 上的

android:theme="@style/AppTheme"全局配置ActionBar
在某个activity上设置
android:theme="@style/Theme.AppCompat.NoActionBar"配置没有actionBar
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity" android:theme="@style/Theme.AppCompat.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

2.代码中实现ActionBar的显示隐藏

 public void onClick(View v) {
ActionBar actionBar = getSupportActionBar(); //获取actionBar对象
switch (v.getId()){
case R.id.action_btn_show:
actionBar.show(); //显示
break;
case R.id.action_btn_hide:
actionBar.hide(); //隐藏
break;
default:
break;
}
}

2.添加Action Item 的步骤

1.定义菜单资源文件

app:showAsAction:alwary:一直显示在栏上   ifRoom空间够显示在栏上,never显示在更多里面                 
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:id="@+id/search"
android:icon="@drawable/search"
android:title="search"
app:actionViewClass="android.support.v7.widget.SearchView"
app:showAsAction="always">
</item>
<item android:id="@+id/bell"
android:icon="@drawable/bell"
android:title="消息"
app:showAsAction="ifRoom">
</item>
<item android:id="@+id/setting"
android:icon="@drawable/bell"
android:title="设置"
app:showAsAction="ifRoom">
</item>
<item android:id="@+id/link"
android:icon="@drawable/bell"
android:title="关于"
app:showAsAction="ifRoom">
</item>
</menu>

2.在onCreateOptionsMenu()方法中加载菜单资源文件

 @Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater(); //实例化MenuInflater
inflater.inflate(R.menu.menu,menu);
return super.onCreateOptionsMenu(menu);
}

3.添加Action View 的步骤

1.定义菜单资源文件

app:showAsAction:alwary:一直显示在栏上   ifRoom空间够显示在栏上,never显示在更多里面
//使用  app:actionViewClass通过实现类
<item android:id="@+id/search"
android:icon="@drawable/search"
android:title="search"
app:actionViewClass="android.support.v7.widget.SearchView" //使用实现类
app:showAsAction="always">
</item>
//使用 app:actionLayout 属性 通过布局文件
<item android:id="@+id/man"
android:title="关于"
app:actionLayout="@layout/image_add" //使用布局文件
app:showAsAction="always">
</item>
2.在onCreateOptionsMenu()方法中加载菜单资源文件(同上)

4.ActionBar实现tab导航

1.设置使用Tab导航方式

 public void initTabBar(){
//获取actionBar
ActionBar actionBar = getSupportActionBar();
//设置不显示标题
actionBar.setDisplayOptions(,ActionBar.DISPLAY_SHOW_TITLE);
//设置模式是tab
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
//actionBar.addTab(actionBar.newTab().setText("词典"));
actionBar.addTab(actionBar.newTab()
.setText("词典").setTabListener(new MyTabListener(this,AddFragment.class)));
}

2.添加多个Tab标签页,并为每个Tab标签页添加事件监听

/*
实现各标签页的切换
*/
public class MyTabListener implements TabListener {
private final Activity activity;//用于指定要加载的Fragment的activity
private final Class aClass; //用于指定Fragment要加载的类
private Fragment fragment; public MyTabListener(Activity activity, Class aClass) {
this.activity = activity;
this.aClass = aClass;
}
//被选择标签页的事件
@Override
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
//判断fragment是否初始化
if(fragment ==null){
//反射方式实现初始化,参数:上下文对象,类名
fragment = Fragment.instantiate(activity,aClass.getName());
//将fragment进行添加
ft.add(android.R.id.content,fragment,null);
}
ft.attach(fragment); //将添加进
} @Override
public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) {
//判断fragment是否初始化
if(fragment !=null){
ft.detach(fragment); //删掉
}
} @Override
public void onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) { }
}
 

Action Bar的更多相关文章

  1. Android Action Bar简介

    Android Action Bar简介 Design: Action Bar Action Bar是在屏幕顶端的一部分内容,通常在整个app进行中都保持存在. 它提供了几个关键的功能: 1.使得重要 ...

  2. Android 自定义title 之Action Bar

    Android 自定义title 之Action Bar 2014-06-29  飞鹰飞龙...  摘自 博客园  阅 10519  转 25 转藏到我的图书馆   微信分享:   Action Ba ...

  3. 布局文件预览:Rendering Problems Exception raised during rendering: Unable to find the layout for Action Bar.的解决

    在android studio或者eclipse中打开layout文件,发现不能预览布局,提示以下错误: Rendering Problems Exception raised during rend ...

  4. 【Android】Android之Action Bar

    Action Bar是在窗口上指示用户位置的组件,同时给用户提供导航和操作.使用Action Bar可以让你的应用在不同配置的屏幕上看起来比较一致.在开始之前,先了解一些相关的术语: Action B ...

  5. [转]【android studio】解决layout预览出现Rendering Problems Exception Unable to find the layout for Action Bar.

    在android studio中打开layout文件,发现不能预览布局,提示以下错误: Rendering Problems Exception raised during rendering: Un ...

  6. Action Bar详解

    Action bar是一个标识应用程序和用户位置的窗口功能,并且给用户提供操作和导航模式.在大多数的情况下,当你需要突出展现用户行为或全局导航的activity中使用action bar,因为acti ...

  7. show drop down menu within/from action bar

    show drop down menu within/from action bar */--> pre { background-color: #2f4f4f;line-height: 1.6 ...

  8. Android开发之Action Bar

    Action Bar代替了传统的位于设备屏幕的标题栏,主要用来显示应用程序的图标和活动的名称以及添加定制动作项等功能. 1. 显示和隐藏Action Bar 显示和隐藏Action Bar 一般有两种 ...

  9. Android Action Bar 详解篇 .

    作者原创,转载请标明出处:http://blog.csdn.net/yuxlong2010 作为Android 3.0之后引入的新的对象,ActionBar可以说是一个方便快捷的导航神器.它可以作为活 ...

  10. Android学习路径(十)如何将Action Bar堆放在布局

    默认情况下,action bar出如今activity窗体的顶部,稍微降低了activity布局的总空间.假设你想隐藏或者显示action bar,在这堂用户体验的课程中,你能够通过调用hide()  ...

随机推荐

  1. C# TinyMapper

    https://github.com/TinyMapper/TinyMapper 据说性能蛮高的,我没对比测试过. NuGet安装下. 新增三个实体. public class A { public ...

  2. deepin mysql安装

    1.安装mysql  更新仓库:sudo apt-get update  安装:sudo apt-get install mysql-server mysql-client  问题:安装mysql5. ...

  3. js判断图片是否加载完毕

    附件: https://www.jb51.net/article/102385.htm 问题:  .offset().top和$(window).scrollTop()每次刷新页面后滚动的值有时候会不 ...

  4. Qt使用gtest进行C++单元测试-01

    环境: win7/win10+qt5.8.0(MinGW), 1.gtest获取: 从:https://www.bogotobogo.com/cplusplus/google_unit_test_gt ...

  5. Python小白学习之路(十六)—【内置函数一】

    将68个内置函数按照其功能分为了10类,分别是: 数学运算(7个) abs()   divmod()  max()  min()  pow()  round()  sum() 类型转换(24个) bo ...

  6. selenium IDE的基本命令

    waitForText.verifyText和asserText命令 waitForText语句在测试执行时用来判断某些文本是否存在界面中.若界面上显示了指定文本,测试程序会继续执行:若等待一段时间后 ...

  7. easyUI combobox下拉框很长,easyUI combobox下拉框如何显示滚动条的解决方法

    如下图,combobox下拉框里内容很多时,会导致下拉框很长,很不美观. 如何使得combobox下拉框显示滚动条 方法:把属性panelHeight:"auto"注释掉即可. $ ...

  8. 原生ajax封装,包含post、method方式

    原生ajax封装,包含post.method方式 function ajax(method, url, data, success) { var xhr = null; try { xhr = new ...

  9. 杂记---Mongo的Invalid BSON field name $gte

    1.前言 这几天使用mongo的时候遇到了一个异常:Invalid BSON field name $gte,该问题可能会有很多小伙伴会遇到,因此记录一下解决过程.起因是用JAVA翻译一个其他语言写的 ...

  10. 使用canvas绘制渐变色矩形和使用按键控制人物移动

    使用canvas绘制渐变色矩形和使用按键控制人物移动 1.使用canvas绘制渐变色矩形 效果演示 相关代码: <!DOCTYPE html> <html lang="en ...