(一)开始____2、添加操作栏-Adding the Action Bar——叠加操作栏-Overlaying the Action Bar

目录

 [隐藏

叠加操作栏

默认情况下操作栏会出现在活动窗口的顶部,稍微减少了剩余活动布局的可用空间。如果在用户交互过程中你想要隐藏或显示操作栏,就可以通过在ActionBar调用 hide() 和 show()来实现。然而这会导致活动重新计算并根据大小重新绘制新布局。
为了避免在操作栏隐藏或显示时调整布局,可以为操作栏启用叠加模式。在叠加模式下如果操作栏不存在,活动布局会使用所有可用空间,而系统会在布局前绘制操作栏。这会遮盖一些顶部布局,但是当操作栏隐藏或者显示时,系统不需要调整布局而是无缝衔接。

启用叠加模式

要启用操作栏的叠加模式,需要创建一个能够扩展现有操作栏主题的自定义主题,并且要把android:windowActionBarOverlay 属性设置为true.

Android 3.0或者更高级别

如果 minSdkVersion 设置为11或者更高级别,自定义主题要使用 Theme.Holo(或者其子类之一)作为父类主题。例如:

<resources>
    <!-- the theme applied to the application or activity -->
    <style name="CustomActionBarTheme"
           parent="@android:style/Theme.Holo">
        <item name="android:windowActionBarOverlay">true</item>
    </style>
</resources>

Android2.1或者更高级别

如果应用程序使用低于安卓3.0版本的兼容支持库 ,自定义主题要使用 Theme.AppCompat(或者其子类之一)来作为父类主题。例如:

<resources>
    <!-- the theme applied to the application or activity -->
    <style name="CustomActionBarTheme"
           parent="@android:style/Theme.AppCompat">
        <item name="android:windowActionBarOverlay">true</item>
 
        <!-- Support library compatibility -->
        <item name="windowActionBarOverlay">true</item>
    </style>
</resources>

注意该主题包含了两种 windowActionBarOverlay 样式定义:一种使用 android前缀而另一种不使用。带有android前缀的定义适用于包括平台样式的安卓版本,另一种不带前缀的定义适用于从支持库查出样式的旧版本。

指定布局顶部边距

操作栏处于叠加模式时,可能会遮盖一些本应保持可见状态的布局。为了确保这些项目总是低于操作栏,添加边距或者用 actionBarSize指定高度填充视图(S)顶部。例如:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingTop="?android:attr/actionBarSize">
    ...
</RelativeLayout>

如果使用操作栏支持库,你需要删除 android: 前缀。例如:

<!-- Support library compatibility -->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingTop="?attr/actionBarSize">
    ...
</RelativeLayout>

这种情况下不带前缀的?attr/actionBarSize适用于包括 Android 3.0及更高级别在内的所有版本.

posted @ 2014-07-28 16:14  ╰→劉じ尛鶴  阅读(158)  评论(0)    收藏  举报