【问题标题】:FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS Causes content to go below navigation barsFLAG_DRAW_SYSTEM_BAR_BACKGROUNDS 使内容位于导航栏下方
【发布时间】:2015-01-13 17:47:46
【问题描述】:

使用以下代码会使我的布局扩展到导航栏下方。我只是想改变状态栏颜色而不弄乱布局。

int currentapiVersion = android.os.Build.VERSION.SDK_INT;
        if (currentapiVersion >= android.os.Build.VERSION_CODES.LOLLIPOP){
            getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
            getWindow().setStatusBarColor(this.getResources().getColor(R.color.statusbar_color));
            //TRANSPARENT FOR TESTING
            getWindow().setNavigationBarColor(this.getResources().getColor(android.R.color.transparent));
        }

我觉得我错过了什么......

【问题讨论】:

  • 发布您的布局。我似乎无法重新创建它。
  • 一切都只是 match_parent,没什么疯狂的。如您所见,我正在使用滑动菜单,我认为这可能会导致问题。必须有一些函数来覆盖正在发生的事情。

标签: android android-5.0-lollipop material-design


【解决方案1】:

尝试设置此标志

getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);

super.onCreate(savedInstance)之前

超级之后,可以随时在活动中设置状态栏颜色。

【讨论】:

【解决方案2】:

你必须使用“attachToActivity”:

SlidingMenu slidingMenu = new SlidingMenu(getApplicationContext());
slidingMenu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT, false);

并扩展SherlockFragmentActivity(或FragmentActivity)而不是SlidingFragmentActivity。

但是这样你的ActionBar当然不会滑动......

【讨论】:

    【解决方案3】:

    只需添加

    getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                                    |  View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION);
    

    它对我有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-25
      • 1970-01-01
      • 2020-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-13
      • 1970-01-01
      相关资源
      最近更新 更多