Training--叠加动作栏

来源:互联网 发布:编程教育进入中小学 编辑:程序博客网 时间:2024/05/16 19:34

叠加动作栏

 

默认情况下,动作栏是显示在你的activity布局窗口的上面,这样就会占用一部分窗体空间。在用户操作过程中,你可以需要隐藏或显示动作栏,通过调用接口hide()或者show()来实现。但是,这样会引起你的activity重新计算布局大小,并且需要重新画界面。

 

为了避免当显示或隐匿动作栏的时候重新调整你的activity的布局,我们可以启用动作栏的叠加模式。在叠加模式下,你的activity的布局就会使用手机屏幕上的所有剩余空间,就像动作栏不存在一样,这个时候系统会把动作栏叠加在你的activity的上方,就好像飘浮在你的activity的上方一样。当然了,由于动作栏飘浮在上方,就会挡住你的activity的一部分界面。但是现在隐藏或显示动作栏,系统无需重新计算布局,自然也不需要重新描画了。

 

注意:如果想显示被隐匿的部分界面,可以自定义动作栏的主题,使动作栏的背景透明显示。请参考上课的内容。

 

启动叠加模式

 

为了启动叠加模式,你需要在扩展动作栏的主题基础上自定义一个主题,并且在主题中设置android:windowActionBarOverlay = true。

 

针对安卓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>

然后应用此主题到整个应用或者某个activity。具体请参考上一课内容。

 

效果如下图所示,你能看出效果来吗?



Figure 1. Gallery's actionbar in overlay mode.

 

给布局指定上边界

 

当动作栏处于叠加模式时,它可能挡住下面的activity的内容。为了下面的内容不被遮挡,我们可以设置某个view的上边界值或填充值为actionBarSize大小。例如:

<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>

 

具体地自己试试吧,比较简单。^_^!

 


0 0
原创粉丝点击