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. monoDB环境搭建

    最近看到有部分人MongoDB安装之后总是启动不起来,在这里,写了一个简单的搭建教程 直接进入正题 1.mongoDB下载地址 https://www.mongodb.org/downloads#pr ...

  2. SSRS (一)创建基础报表

    ReportService创建基础报表 1.数据库SQL Server2012选择SQL Server Data Tools 2.创建商业智能(BI)项目 选择报表服务器项目 ReportServic ...

  3. 程序媛计划——python数据库

    #实例:用数据库存储日记,实现日记本功能 #流程 #创建数据库 #coding:utf-8 import sqlite3 connect=sqlite3.connect('test.db') conn ...

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

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

  5. Python任意网段Web端口信息探测工具

    此篇关于多线程工具的文章,非常适合新手学习,工具效率也挺高的,代码也比较完善,如题. 本文作者:i春秋签约作家——Aedoo 0×00 前言 笔者前一段时间发布了原创文章,“[Python黑客] Py ...

  6. grafana 运行

    1,下载好项目,然后进入到目录 键入: ./bin/grafana-server web 运行 https://www.waitig.com/grafana-config-and-run.html 2 ...

  7. 转的很好的前端html 内容

    HTML 初识 web服务本质 import socket def main(): sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s ...

  8. 如何使用 AutoWire方式注入 JdbcDaoSupport DataSource

      @Repositorypublic class MyDaoImpl extends JdbcDaoSupport implements MyDao { @Autowired private Dat ...

  9. js获取url地址的参数的方法

    js获取url参数值 今天说一下如何获取url参数值. 思路 通过location的search就可以获取到url中问号后面的值. 字符串过滤到问号 通过split方法分割参数集合 循环赋值 匹配对应 ...

  10. leetcode 114. 二叉树展开为链表(Flatten Binary Tree to Linked List)

    目录 题目描述: 示例: 解法: 题目描述: 给定一个二叉树,原地将它展开为链表. 示例: 给定二叉树 1 / \ 2 5 / \ \ 3 4 6 将其展开为: 1 \ 2 \ 3 \ 4 \ 5 \ ...