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. RabbitMQ广播模式

    广播模式:1对多,produce发送一则消息多个consumer同时收到.注意:广播是实时的,produce只负责发出去,不会管对端是否收到,若发送的时刻没有对端接收,那消息就没了,因此在广播模式下设 ...

  2. Bonjour Operations

    https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/NetServices/Articles/NetServi ...

  3. 听补天漏洞审核专家实战讲解XXE漏洞

    对于将“挖洞”作为施展自身才干.展现自身价值方式的白 帽 子来说,听漏洞审核专家讲如何挖掘并验证漏洞,绝对不失为一种快速的成长方式! XXE Injection(XML External Entity ...

  4. 使用VS Code开发.Net Core 2.0 MVC Web应用程序教程之三(配置文件读取)

    干了一天的活,还有点时间,给兄弟们写点东西吧. 大家有没有发现一个问题?那就是在.Net Core的MVC项目里面,没有.config文件了!!!同志们,没有config文件了啊,这样搞,我以后要做些 ...

  5. [Swift实际操作]七、常见概念-(1).范围Range、ClosedRange和NSRange的使用实际操作

    本文将为你解析区间的概念.在对字符串进行处理时,经常会使用到区间.例如获得字符串中从某个位置开始到另一个位置之间的内容. 首先导入需要使用到的框架 import Foundation 区间分为闭区间和 ...

  6. ReentrantLock总体概括

    一.锁的实现原理: JAVA concurrent包下面的锁是通过AbstractQueuedSynchronizer内的Node类下面的state属性来实现的,并且锁的可重入属性也是通过state实 ...

  7. eclipse中导入SVN项目步骤

    1.eclipse中安装SVN插件 在线安装步骤: (1)点击 Help --> Install New Software...(2)在弹出的窗口中点击add按钮,输入Name(任意)和Loca ...

  8. Spring Security构建Rest服务-0102-Spring Social开发第三方登录之qq登录

    图一 基于SpringSocial实现qq登录,要走一个OAuth流程,拿到服务提供商qq返回的用户信息. 由上篇介绍的可知,用户信息被封装在了Connection里,所以最终要拿到Connectio ...

  9. 【转】Hadoop vs Spark性能对比

    原文地址:http://www.cnblogs.com/jerrylead/archive/2012/08/13/2636149.html 基于Spark-0.4和Hadoop-0.20.2 1. K ...

  10. vue-resource使用笔记

    基本语法 //基于全局Vue对象使用http Vue.http.get('/someUrl', [options]).then(successCallback, errorCallback); Vue ...