Training--叠加动作栏

叠加动作栏

 

默认情况下,动作栏是显示在你的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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值