zoukankan      html  css  js  c++  java
  • 15、Android--标题控件

    ActionBar

    在Android 3.0中,ActionBar取代传统的TitleBar和Menu,在程序中一直在顶部显示。

    ActionBar的主要功能如下图:

    img

    介绍如下所示:

    1、ActionBar的图标,可以修改。当应用不在最高级页面时,会显示一个箭头用作向上导航。

    2、如果应用需要在不同的View中显示数据,可以用来切换视图。显示一个下拉菜单或Tab选项卡。

    3、两个Action按钮,这里可以放置重要的按钮功能,为用户进行某项操作提供直接访问。

    4、OverFlow按钮,放不下的按钮则会被放置于"更多..."的菜单中,以下拉形式展现。

    ActionBar使用

    1、添加ActionBar

    ActionBar的添加非常简单,只需要在AndroidManifest.xml中指定Application或Activity的Theme为Theme.Holo的子类即可,在Android 3.0之后的Activity都默认包含有ActionBar组件。

    2、取消ActionBar

    如果需要隐藏Action Bar可以在你的Activity的属性中设置主题风格为NoTitleBar在你的manifest文件中

    <activity android:theme="@android:style/Theme.NoTitleBar">
    

    还有一种做法,在运行时调用hide()方法也可以隐藏ActionBar,调用show()方法来显示ActionBar()。

    ActionBar actionBar = getActionBar();  
    actionBar.hide(); 
    

    当你隐藏ActionBar时,系统会将Activity的整个内容充满整个空间。

    3、修改ActionBar

    默认情况下,系统会使用<application>或者<activity>中icon属性指定的图片来作为ActionBar的图标,但是我们也可以改变这一默认行为。如果我们想要使用另外一张图片来作为ActionBar的图标,可以在<application>或者<activity>中通过logo属性来进行指定,而标题中的内容使用label属性来指定。

     <activity
        android:name=".MainActivity"
        android:label="修改的标题"
        android:logo="@drawable/cnblog_icon" >
    

    4、添加ActionBar按钮

    ActionBar还可以根据应用程序当前的功能来提供与其相关的Action按钮,这些按钮都会以图标或文字的形式直接显示在ActionBar上。当按钮过多的情况下可以隐藏在OverFlow里面。

    当Activity启动的时候,系统会调用Activity的onCreateOptionsMenu()方法来取出所有的Action按钮,我们只需要在这个方法中去加载一个menu资源,并把所有的Action按钮都定义在资源文件里面即可。

    <?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:android="http://schemas.android.com/apk/res/android" >
    
        <item
            android:id="@+id/user_p"
            android:icon="@drawable/icon_user_p"
            android:showAsAction="always"
            android:title="用户"/>
        <item
            android:id="@+id/write_p"
            android:icon="@drawable/icon_write_p"
            android:showAsAction="always"
            android:title="发布"/>
        <item
            android:id="@+id/favo_p"
            android:icon="@drawable/icon_favo_p"
            android:showAsAction="never"
            android:title="收藏"/>
    
    </menu>
    

    通过两个<item>标签定义了三个Action按钮。<item>标签中又有一些属性:

    id是该Action按钮的唯一标识符
    icon用于指定该按钮的图标
    title用于指定该按钮可能显示的文字
    actionViewClass用来指定一个构建视窗所使用的布局资源
    showAsAction则指定了该按钮显示的位置

    其中showAsAction包含以下几种值可以选择:

    标题 描述
    Room 会显示在Item中,但是如果已经有4个或者4个以上的Item时会隐藏在溢出列表中。当然个数并不仅仅局限于4个,依据屏幕的宽窄而定。
    never 永远不会显示。只会在溢出列表中显示,而且只显示标题,所以在定义item的时候,最好把标题都带上。
    always 无论是否溢出,总会显示。
    withText withText值示意Action bar要显示文本标题。Action bar会尽可能的显示这个标题,但是,如果图标有效并且受到Action bar空间的限制,文本标题有可 能显示不全。
    collapseActionView 声明了这个操作视窗应该被折叠到一个按钮中,当用户选择这个按钮时,这个操作视窗展开。否则,这个操作视窗在默认的情况下是可见的,并且即便在用于不适用的时候,也要占据操作栏的有效空间。 一般要配合ifRoom一起使用才会有效果。

    接着,重写Activity的onCreateOptionsMenu()方法,代码如下所示:

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

    https://www.cnblogs.com/mjsn/p/6150824.html

  • 相关阅读:
    pytest 框架生成 pytest
    pytest 之数据驱动参数化:pytest.mark.parametrize
    web 网站表单测试、搜索查询测试、删除测试、数据库测试知识点
    pytest 之 fixture 的前置后置功能
    pytest 框架之pytest-html报告生成
    Initialization of bean failed; nested exception is java.lang.
    使用jmeter测试Oracle&&MySQL数据库性能
    jmeter的日常特殊参数化
    压测出现各种奇葩问题,求围观
    weblogic性能调优
  • 原文地址:https://www.cnblogs.com/pengjingya/p/5508742.html
Copyright © 2011-2022 走看看