2017-06-06 7 views
0

画面の向きがPORTRAITの場合は、ステータスTRANSLUCENTにする必要があります。
一方、画面の向きがランドスケープの場合は、正常にする必要があります。ステータスの切り替え方法TRANSLUCENT?

今私はonConfigurationChangedをoverwritte、ステータスモードを切り替えるには、このメソッドを呼び出します。

@TargetApi(19) 
public static void setTranslucentStatus(Activity activity, boolean on) { 
    Window win = activity.getWindow(); 
    if (on) { 
     win.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); 
    } else { 
     win.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); 
     win.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | 
      View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); 
    } 
} 

しかし、画面の上部にある醜い白いものがあります: White thing

理由は?

答えて

0

あなたの画面の向き

if(getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT){ 
win.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); 
} else { 
    win.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); 
    win.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | 
     View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); 
} 
+0

のための最初のチェック私はonConfigurationコールバックでこれらのようでしたが、良いではない仕事を盗みます – RainFool

関連する問題