adjustPan与FLAG_LAYOUT_NO_LIMITS一起使用无效

14

我的要求是在同一个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" 但是屏幕没有被重新调整或滚动。请问有人能够帮我解决这个问题吗?

所以它正在正常工作,但当软键盘打开时我需要调整屏幕。我尝试使用 android:windowSoftInputMode="adjustPan|adjustResize" 但屏幕未被调整或滚动。是否有人可以帮我处理这个问题。

1个回答

7

实现动态透明和颜色变化的方法如下:不要设置 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));
        }

需要API级别21。 - User
导航栏的颜色怎么样?导航栏将不再透明,因为FLAG_LAYOUT_NO_LIMITS已经被取消。 - Mubashir Murtaza

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接