2016-01-21 71 views

回答

0

我其实是有与此相关的是由于一些自定义的渲染与视差效果的问题......总之,你可以只设置在状态栏背景色onDrawerClosed(View drawerView),然后打开抽屉时将其设置回透明:

public class WindowHelper { 

    public static void setColoredStatusBar(Activity activity){ 
     if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){ 
      Window window = activity.getWindow(); 
      window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); 
      window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); 
      window.setStatusBarColor(activity.getResources().getColor(R.color.secondary_color)); 
     } 
    } 

    public static void setTranslucentStatusBar(Activity activity){ 
     if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){ 
      Window window = activity.getWindow(); 
      window.clearFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); 
      window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); 
     } 
    } 
} 

小号o对你来说,它会像这样:

@Override 
public void onDrawerClosed(View drawerView) { 
    WindowHelper.setColoredStatusBar(activity); 
} 
+0

也许它的小姐理解。我不想让状态栏打开时着色。图像在“这一个”satus酒吧是与工具栏不同的颜色,我想要做的就是使状态栏透明,所以我的工具栏的颜色显示在它后面的状态栏和状态栏得到相同的绘制 –

+0

状态栏当NavigationDrawer打开时已经是透明的。如果你看到最右边的一面,你可以看到你的内容视图在它背后仍然有相同的标签。您看到的效果是,您的NavigationDrawer内容实际上位于透明状态栏后面,因为它的视图具有fitsSystemWindows =“true”属性。如果您从内容视图和NavigationDrawer中移除该属性,它将实际将所有内容放置在状态栏下方。 – Guardanis

相关问题