android Q content above navigation bar

后端 未结 3 1720
耶瑟儿~
耶瑟儿~ 2021-01-18 08:51

we are targeting our application at api 28 and draw content under status bar. For this we are using following flag and styles :

window.addFlags(FLAG_LAYOUT_N         


        
相关标签:
3条回答
  • 2021-01-18 09:25

    the "problem" underlies the behavior of the FLAG_LAYOUT_NO_LIMITS, mixed with the new gesture functionality in api 29

    https://medium.com/androiddevelopers/gesture-navigation-going-edge-to-edge-812f62e4e83e https://medium.com/androiddevelopers/gesture-navigation-handling-visual-overlaps-4aed565c134c

    a little solution is:

    window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)
    window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS)
    window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
    window.statusBarColor = Color.TRANSPARENT
    

    and don't set

    android:fitsSystemWindows
    android:windowTranslucentStatus
    android:windowIsTranslucent
    
    0 讨论(0)
  • 2021-01-18 09:30

    In android api 29, Bottom bar is overlapping the content.

    Add this code in your activity

        getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
    
    
        ViewCompat.setOnApplyWindowInsetsListener(getWindow().getDecorView(), new OnApplyWindowInsetsListener() {
            @Override
            public WindowInsetsCompat onApplyWindowInsets(View v, WindowInsetsCompat insets) {
                v.setPadding(0, 0, 0, v.getPaddingBottom() + insets.getSystemWindowInsetBottom());
                return insets;
            }
        });
    
    0 讨论(0)
  • 2021-01-18 09:42

    You should this to you main activity

        view.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
        view.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION);
    

    and then create a new styles.xml file for v29

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
      <!-- values-v29/themes.xml -->
      <style name="AppTheme"
          parent="Theme.AppCompat.Light">
          <item name="android:navigationBarColor">
              @android:color/black
          </item>
    
          <!-- Optional, if drawing behind the status bar too -->
          <item name="android:statusBarColor">
              @android:color/black
          </item>
      </style>
    </resources>
    

    source: https://medium.com/androiddevelopers/gesture-navigation-going-edge-to-edge-812f62e4e83e

    0 讨论(0)
提交回复
热议问题