“我的活动”有2个片段,每个片段都使用一个专用工具栏。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
tools:context=".BlankFragment">
<include layout="@layout/app_bar" />
</LinearLayout>
我通过以下方式为他们实现了半透明工具栏:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
getWindow().setStatusBarColor(Color.TRANSPARENT);
在第一个片段上,它按我的预期正常工作。在第二个工具栏上,工具栏被覆盖在状态栏下。
MainActivity
@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();
}
FragmentBlank
@OnClick({R.id.btnNext})
public void moveToFragment2(){
FragmentTransaction ft = getFragmentManager().beginTransaction();
BlankFragment2 ab = new BlankFragment2();
ft.add(R.id.fragment_container, ab).commit();
}
任何帮助将不胜感激。
答案 0 :(得分:0)
尝试在根unicode
中设置str
属性
android:fitsSystemWindows="true"
答案 1 :(得分:0)
代替使用
getWindow().setStatusBarColor(Color.TRANSPARENT);
您可以添加到片段
getActivity().getWindow().setStatusBarColor(getContext().getColor(R.color.YourColor));
并匹配工具栏颜色。
另一种替代方法是将应用设置为全屏显示,但是您会丢失状态栏,如果我对,则需要状态栏。代码是这样的:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);