在隐藏和删除Action bar时,要当心为了适应被Action bar占用的空间而导致的Activity的重新布局。如果你的Activity有规律的隐藏和显示Action bar,你可能想要使用覆盖模式。覆盖模式在Activity的顶部描画操作栏,而不是在它们所拥有的屏幕的区域。这样,在Action bar隐藏和重新显示时,你的布局保持不变。要使用覆盖模式,就要给Activity创建一个主题,并且把
android:windowActionBarOverlay
属性设置为true。
也可在代码中通过
requestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY
);
设置,要在setContentView之前。
覆盖模式被启用时,Activity布局不会感知到操作栏覆盖在它的上面,如果你想里面有布局不覆盖ActionBar,可以引用平台的actionBarSize值来获取ActionBar的高度,例如,在XML布局文件中引用这个值。
<SomeView
...
android:layout_marginTop="?android:attr/actionBarSize" />