adjustPan 不能与 FLAG_LAYOUT_NO_LIMITS 一起使用

Posted

技术标签:

【中文标题】adjustPan 不能与 FLAG_LAYOUT_NO_LIMITS 一起使用【英文标题】:adjustPan not working with FLAG_LAYOUT_NO_LIMITS 【发布时间】:2017-01-09 05:17:57 【问题描述】:

我的要求是一个完全透明的状态栏,在同一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】:

像这样设置透明并动态更改颜色不要设置标志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。 导航颜色怎么样,导航不会像FLAG_LAYOUT_NO_LIMITS那样透明

以上是关于adjustPan 不能与 FLAG_LAYOUT_NO_LIMITS 一起使用的主要内容,如果未能解决你的问题,请参考以下文章

xml Android的EditText上,adjustPan

SoftInput.AdjustPan 不起作用

在包含 ScrollView 的活动中强制执行adjustPan

使用 adjustPan 作为软输入模式时是不是可以始终显示操作栏?

每行带有 EditText 的 Listview , Listview 的 FooterView 内的 Scrollview , adjustResize 和 adjustPan 都工作在一起

关于最下方 EditText 获取焦点 界面上移的问题