Android 重新绘制片段后的状态栏覆盖工具栏
我的活动有2个片段,每个片段都使用一个专用工具栏Android 重新绘制片段后的状态栏覆盖工具栏,android,android-layout,android-fragments,android-view,Android,Android Layout,Android Fragments,Android View,我的活动有2个片段,每个片段都使用一个专用工具栏 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" tools:context=".BlankFragment"> <include layout="@layout/app_bar" /> </LinearLayout> 在第一个片段中,它像我预期的那样正常工作。在第二个工具栏上,工具栏覆盖在状态
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
tools:context=".BlankFragment">
<include layout="@layout/app_bar" />
</LinearLayout>
在第一个片段中,它像我预期的那样正常工作。在第二个工具栏上,工具栏覆盖在状态栏下
主要活动
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
getWindow().setStatusBarColor(Color.TRANSPARENT);
setContentView(R.layout.activity_main);
BlankFragment a = new BlankFragment ();
getSupportFragmentManager().beginTransaction()
.replace(R.id.fragment_container, a).commit();
}
碎片空白
@OnClick({R.id.btnNext})
public void moveToFragment2(){
FragmentTransaction ft = getFragmentManager().beginTransaction();
BlankFragment2 ab = new BlankFragment2();
ft.add(R.id.fragment_container, ab).commit();
}
任何帮助都将不胜感激。请尝试在root
视图组中设置android:fitsystemwindows=“true”
属性
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
...
</LinearLayout>
...
而不是使用
getWindow().setStatusBarColor(Color.TRANSPARENT);
您可以添加到您的片段中
getActivity().getWindow().setStatusBarColor(getContext().getColor(R.color.YourColor));
并匹配工具栏颜色
另一种选择是将应用程序设置为全屏,但您将丢失状态栏,如果我是对的,您需要状态栏。代码如下:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);