• 关于ActionBar


    添加ActionBar

      Android 3.0(API 11)(不含API11)以下的版本中,如果需要活动有ActionBar,需要让活动继承ActionBarActivity类,并且在Manifest.xml文件中对应活动的注册信息中添加主题属性。比如要让MainActivity有ActionBar,需要:

      第一步,让MainActivity继承ActionBarActivity类

      public class MainActivity extends ActionBarActivity { ... }

      第二步,在MainActivity的注册信息中添加主题属性,像下面这样:

      <activity  android:name=".MainActivity"

             android:theme="@style/Theme.AppCompat.Light" ... >

      从 Android 3.0(API 11)开始,ActionBar被添加到Activity中,并且默认使用Theme.Holo主题,所以如果targetSdkVersion设置的不小于11,只需要继承Activity类,活动就会有ActionBar。

    隐藏ActionBar:

      如果需要隐藏ActionBar,可以在活动的注册信息中将主题设置为Theme.NoTitleBar,如下:

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

      如果要隐藏ActionBar和通知栏,相当于全屏,可以将主题设置成Theme.NoTitleBar.Fullscreen,如下:

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

      在Android3.0(API11)及以上的版本中,还可以这样,如果某个活动需要隐藏(或显示)ActionBar,可以:

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

    ActionBar标题文本

      标题文本是靠活动的注册信息中android:label属性控制的,比如:

    <activity android:name=".DisplayMessageActivity"
                android:label="@string/title_activity_display_message" />

    标题栏返回按钮

      类似于下图这种效果。

     

      假设要给DisplayActivity增加这种返回按钮,点击后返回MainActivity。

      首先需要将DisplayActivity的ParentActivity设置为MainActivity,在活动注册信息中设置:

    <activity
            android:name=".DisplayActivity"
            android:label="@string/title_activity_display"
            android:parentActivityName=".MainActivity">
            <meta-data
                    android:name="android.support.PARENT_ACTIVITY"
                    android:value=".MainActivity" />
    </activity>

      android:parentActivityName=".MainActivity"适用于API16及以上的SDK,为兼容16以下的SDK,还需要添加下面的

    <meta-data
                android:name="android.support.PARENT_ACTIVITY"
                android:value=".MainActivity" />

      然后在DisplayActivity的onCreate()函数中添加getSupportActionBar().setDisplayHomeAsUpEnabled(true);语句启用返回按钮,如果minSdkVersion不小于11,则将上面那句替换为这句:

    getActionBar().setDisplayHomeAsUpEnabled(true);

      以前写关于返回按钮的笔记的时候,并没有成功做出返回按钮,因为当时实验时用的SDK版本比较低,所以直接只用了

    <meta-data
                android:name="android.support.PARENT_ACTIVITY"
                android:value=".MainActivity" />

      后来发现返回无效,单独只用android:parentActivityName=".MainActivity"也是无效的,今天两个放一起合用,返回按钮才起作用了。

  • 相关阅读:
    Linux学习(五)
    Linux学习(四)
    Linux学习(三)
    Linux学习(二)
    Linux学习(一)
    JAVA学习笔记(九)
    JAVA学习笔记(八)
    连接报错'mysql_native_password'
    TabControl改变TabPage时自动字体变大
    问题:winform窗体与设计时不一致
  • 原文地址:https://www.cnblogs.com/dige1993/p/4857870.html
Copyright © 2020-2023  润新知