Android:使操作栏重叠活动布局

我有一个活动,其中的操作栏是隐藏的,当我点击一个button,我希望它是可见的,但我不希望布局活动向下滚动,栏必须重叠。 我怎么能做这样的事情?

隐藏我使用的酒吧

actionbar.hide(); getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE); 

并使其可见:

 actionbar.show(); getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE); 

我的布局正好

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <MyPager xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/pager" android:layout_width="match_parent" android:layout_height="match_parent" > <MyPager> </RelativeLayout> 

提前致谢。

Solutions Collecting From Web of "Android:使操作栏重叠活动布局"

您可能正在寻找ActionBar覆盖模式。 通过调用requestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY);来为单个Activity启用它requestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY);setContentView()之前。 或者在一个主题中设置android:windowActionBarOverlaytrue

为活动的父级布局创build一个RelativeLayout,并将您的操作栏放在布局顶部,将其覆盖在主活动内容的顶部,如下例所示。

RelativeLayout允许你定位元素,但是也允许你通过从上到下的顺序来确定视图元素的z-index顺序,即哪些视图位于其他前面/后面。

 <RelativeLayout android:id="@+id/parent_layout" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:id="@+id/action_bar_layout" android:layout_width="match_parent" android:layout_height="100dp"> </LinearLayout> <LinearLayout android:id="@+id/main_activity_content_layout" android:layout_width="match_parent" android:layout_height="match_parent"> </LinearLayout> </RelativeLayout> 

现在,您可以隐藏/显示action_bar_layout,它不会影响main_activity_content_layout中活动内容的位置(通过使用布局的setVisibility()方法)

对于Google Play Store效果,请尝试…

  • 尝试使用Lollipop(API Level 21)中引入的新工具栏小部件
  • 在早期版本的android中, 这也支持这个 api。