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. EF简易教程,从建表到表间关系

    唐大兵博客 唐大兵的博客里记录了EF Code First从建表到表之间关系的详细内容. 汪杰的博客(EF里一对一.一对多.多对多关系的配置和级联删除) 汪杰的博客更简洁,但不够充实,读懂了唐大兵博客 ...

  2. 关于EF中使用Migrations的一些小提示

    在运行正常的情况下,EF的数据迁移功能非常强大.但是当它出现状况时,试图找到问题发生的原因时通常都很让人郁闷(没法调试,提示信息很模糊等等原因).我花了很多时间来确保在我的迁移能工作正常,然后我整理了 ...

  3. 《Python绝技:运用Python成为顶级黑客》 用Python进行取证调查

    1.你曾经去过哪里?——在注册表中分析无线访问热点: 以管理员权限开启cmd,输入如下命令来列出每个网络显示出profile Guid对网络的描述.网络名和网关的MAC地址: reg query &q ...

  4. 使用Navicat 创建mysql存储过程,实现日期加流水号序列

    目的:使用Navicat 创建mysql存储过程,实现格式为8位日期(年月日)+5位流水号序列. 步骤: 1.打开Navicat 登录数据库,点击导航栏上的函数,如下图: 2.点击新建函数,选择“过程 ...

  5. Binary Indexed Tree-307. Range Sum Query - Mutable

    Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j), inclusive ...

  6. apache测试网页执行效率

    apache软件下有一个测试网页访问速度的工具ab.exe,位于apache的bin目录下,windows下使用命令行进入bin目录,执行ab.exe -n 10000 -c 10 http://12 ...

  7. 关于rpm的命令

    我是从这里学的:https://www.cnblogs.com/picaso/archive/2012/07/02/2573748.html 软件的安装时操作系统管理的基础,与Windows不同,Li ...

  8. Kafka运行环境优化实践

    Kafka高性能的特点及条件 Kafka是一个高吞吐量分布式消息中间件,并且提供了消息的持久化功能.其高可行有两个重要的特点: 利用了磁盘连续读写性能显著高于随机读写性能的特点 并发,将一个topic ...

  9. 多线程:多读少写锁(Readers–writer lock)

    先来几个同义词 readers–writer (RW) lock shared - exclusive lock multiple readers/single-writer lock multi-r ...

  10. Java的GC

    垃圾收集 在探究Jvm的过程中,有两个点特别需要关注,一是:内存的使用,分配策略,而这一点是在前一篇博客已经介绍过了. 二是:内存的回收.也就是这一篇博客所要探究的关键点. 内存回收需要关注的几个点: ...