Android: Action Bar的使用

Posted 大雪初晴丶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android: Action Bar的使用相关的知识,希望对你有一定的参考价值。

一、初识Action Bar

1、定义:

翻译为操作栏,包括app图标,activity标题,选项菜单,向上按钮,TAB导航等等。

2、添加Action Bar

在现在android Studio中,只要sdk版本大于11,则会默认添加。可以在AndroidManifest.xml中theme属性中选择noActionBar来不显示。

显示和隐藏Action Bar,API如下:

        //获取Action Bar
        ActionBar actionBar = getSupportActionBar();
        actionBar.show();//显示actionBar
        actionBar.hide();//隐藏actionBar

二、添加Action Item

 1、定义

在选项栏中带有快捷方式的按钮,即包括菜单项和溢出菜单。

2、添加Action Item的方法

① 定义菜单资源文件

在res下新建menu目录,新建menu文件,写上代码如下:

<?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:showAsAction="always"></item>
    <item android:id="@+id/bell"
        android:icon="@drawable/bell"
        android:title="bell"
        app:showAsAction="ifRoom"></item>
    <item android:id="@+id/settings"
        android:title="设 置"
        app:showAsAction="ifRoom"></item>
    <item android:id="@+id/about"
        android:title="关 于"
        app:showAsAction="never"></item>
</menu>

其中,app:showAsAction属性表示是否显示在actionbar上

属性值:
always:始终显示在actionbar上
ifRoom:表示如果actionbar有空间则显示,如果没有空间则显示在溢出菜单
never:永远不显示
withText:显示图标并且显示文本

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

 //重写方法
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();//实例化对象
        inflater.inflate(R.menu.menu,menu);//解析菜单资源文件
        return super.onCreateOptionsMenu(menu);
    }

即可正常显示。

三、添加Action View

即在ActionBar中添加一些可视的组件。

 实例在ActionBar中添加一个搜索框。

<?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"
    xmlns:andriod="http://schemas.android.com/tools">
    <item
        android:id="@+id/search"
        android:title="搜索"
        app:showAsAction="always"
        app:actionViewClass="android.widget.SearchView" />
</menu>

app:actionViewClass="android.widget.SearchView" 属性可显示出ActionView中的搜索框并实现搜索功能。

在Java文件代码和上步操作一样。

也可在ActionBar中添加布局文件,在menu.xml中的<item>内添加app:actionLayout="",即可。

 四、实现层级式导航

即返回上一次的Activity。

        <!--   为该Activity配置父Activity     -->
        <activity
            android:name=".FriendsActivity"
            android:label="朋友圈">
            <meta-data
                android:name="android.support.PARENT_ACTIVITY"
                android:value=".MainActivity"/>
        </activity>

以上是关于Android: Action Bar的使用的主要内容,如果未能解决你的问题,请参考以下文章

渲染期间的android studio sdk 22版异常:action_bar

(Android UI)Action Bar

隐藏Android Action Bar解决方案

Action Bar

如何在android中找到系统Action Bar中存在的不同图标的宽度

新的 Android Material 设计中的 Action Bar(Toolbar) 图标应该有多大?