Java 当android棒棒糖或更高版本时,设置windowTranslucentStatus=true

Java 当android棒棒糖或更高版本时,设置windowTranslucentStatus=true,java,android,api,android-5.0-lollipop,Java,Android,Api,Android 5.0 Lollipop,当用户使用棒棒糖或更高版本时,我想将Window半透明状态设置为true,因为否则(至少在kitkat上),应用程序栏会显示在系统栏中。吃棒棒糖就可以了。如果不为每个版本分别创建styles.xml(显然您不必再这样做),我如何在java中设置它 我的mainActivity中有以下代码,但不知道热窗口半透明状态。。。有什么想法吗 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { // set windowTr

当用户使用棒棒糖或更高版本时,我想将Window半透明状态设置为true,因为否则(至少在kitkat上),应用程序栏会显示在系统栏中。吃棒棒糖就可以了。如果不为每个版本分别创建styles.xml(显然您不必再这样做),我如何在java中设置它

我的mainActivity中有以下代码,但不知道热窗口半透明状态。。。有什么想法吗

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    // set windowTranslucentStatus = true
}

您可以随时使用以下选项在半透明或非半透明之间切换:

public static void setTranslucent(Activity activity, boolean translucent){
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
  Window w = activity.getWindow();
  if(translucent) {
    w.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
  }
  else{
    w.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
  }
}

我在onCreate方法的顶部使用了它,也在setContentView之后尝试过,但似乎没有任何区别。“系统打印输出”确认代码正在运行,但无论有无代码,其外观都相同。我已编辑了答案,我已检查其是否正常工作,请检查。是否有方法通过编程切换状态栏以再次显示
public static void setTranslucent(Activity activity, boolean translucent){
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
  Window w = activity.getWindow();
  if(translucent) {
    w.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
  }
  else{
    w.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
  }
}