ActionBar的覆盖叠加

默认情况下,action bar 显示在 activity 窗口的顶部,会稍微地减少其他布局的有效空间。如果在用户交互过程中要隐藏和显示 action bar,可以通过调用ActionBar中的hide()和show()来实现。但是,这将导致 activity 基于新尺寸重新计算与绘制布局。

为避免在 action bar 隐藏和显示过程中调整布局的大小,可以为 action bar 启用叠加模式(overlay mode)。在叠加模式下,所有可用的空间都会被用来布局就像ActionBar不存在一样,并且 action bar 会叠加在布局之上。这样布局顶部就会有点被遮挡,但当 action bar 隐藏或显示时,系统不再需要调整布局而是无缝过渡。

ActionBar的覆盖叠加_第1张图片

启用叠加模式(Overlay Mode)

要为 action bar 启用叠加模式,需要自定义一个主题,该主题继承于已经存在的 action bar 主题,并设置android:windowActionBarOverlay属性的值为true。

仅支持 Android 3.0 和以上

如果minSdkVersion为11或更高,自定义主题必须继承Theme.Holo主题(或者其子主题)。例如:

ActionBar的覆盖叠加_第2张图片

指定布局的顶部边距

当 action bar 启用叠加模式时,它可能会遮挡住本应保持可见状态的布局。为了确保这些布局始终位于 action bar 下部,可以使用actionBarSize属性来指定顶部margin或padding的高度来到达。例如:

ActionBar的覆盖叠加_第3张图片

源地址:http://wiki.jikexueyuan.com/project/android-training-geek/overlaying.html

你可能感兴趣的:(ActionBar的覆盖叠加)