adjustPan无法使用FLAG_LAYOUT_NO_LIMITS

时间:2016-09-01 10:49:58

标签: android statusbar adjustpan

我的要求是一个完全透明的状态栏,状态栏的更改颜色在同一activity动态显示。

为此,我添加了getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);

和style.xml

<item name="android:windowTranslucentNavigation">true</item>
<item name="android:windowTranslucentStatus">false</item>

所以它工作正常,但我需要在软键盘打开时调整屏幕。 所以我尝试android:windowSoftInputMode="adjustPan|adjustResize",但屏幕没有调整大小或滚动。任何人都可以帮助我。

1 个答案:

答案 0 :(得分:5)

设置透明并动态更改颜色,不要设置标记FLAG_LAYOUT_NO_LIMITS,然后在打开键盘时检查屏幕。

      if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            Window window = getWindow();
            window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
            window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
            window.setStatusBarColor(getResources()
                    .getColor(R.color.themeToolbarColor));
        }