2017-06-23 22 views
0

私は私の上のステータスバーを透明にしたいが、私は問題を抱えて:enter image description here下部バーの上にコンテンツを表示するには?

は、これが私のテーマ(V21)である:

私は窓(から... StackOverflowのコード)に使用
<style name="PhTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="colorAccent">@color/colorAccent</item> 
    <item name="android:windowTranslucentStatus">true</item> 
    <item name="android:windowTranslucentNavigation">true</item> 
    <item name="android:statusBarColor">@android:color/transparent</item> 
    <item name="windowNoTitle">true</item> 
</style> 

そして、この:

public static void setFullScreen(@NonNull Activity activity) { 
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
     activity.getWindow().getDecorView().setSystemUiVisibility(
       View.SYSTEM_UI_FLAG_LAYOUT_STABLE 
         | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); 
    } 
} 

私はsuper.onCreate()onCreate()に呼び出すこの方法。

So - 下部バーの上にコンテンツを表示するにはどうすればよいですか?(バックボタン付き)

+0

を使用system-ui/immersive.html –

答えて

0

これはhttps://developer.android.com/training/参照してくださいあなたのV21スタイルのテーマでも

<item name="android:fitsSystemWindows">true</item> 

この商品を追加して、この方法

public static int getSoftButtonsBarSizePort(Activity activity) { 
    // getRealMetrics is only available with API 17 and + 
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { 
     DisplayMetrics metrics = new DisplayMetrics(); 
     activity.getWindowManager().getDefaultDisplay().getMetrics(metrics); 
     int usableHeight = metrics.heightPixels; 
     activity.getWindowManager().getDefaultDisplay().getRealMetrics(metrics); 
     int realHeight = metrics.heightPixels; 
     if (realHeight > usableHeight) 
      return realHeight - usableHeight; 
     else 
      return 0; 
    } 
    return 0; 
} 
関連する問題