FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS使内容位于导航栏下方

时间:2014-11-16 21:16:12

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

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

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));
        }

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

enter image description here

3 个答案:

答案 0 :(得分:0)

尝试设置此标记

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

之前super.onCreate(savedInstance)

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

答案 1 :(得分:0)

您必须使用“attachToActivity”:

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

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

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

答案 2 :(得分:0)

添加

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

它对我有用。