解决windowTranslucentStatus和adjustResize

时间:2018-03-11 11:53:18

标签: android

我很欣赏这方面的一些问题,但似乎没有一个问题可以解决我发现自己的情况。我写了一个小测试用例,看社区是否可以支持。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent">

  <RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="75dp"
    android:background="#ff0000">
  </RelativeLayout>

  <EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="12dp"
    android:text="Hello World!" />

 </RelativeLayout>

上面的代码片段产生以下内容: -

enter image description here

在Android清单中为此活动指定了一个主题: -

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowTranslucentStatus">true</item>
</style>

所以..这正是我想要的,但是当我打开键盘时,会发生以下情况: -

(鉴于我在清单中有以下设置)

android:windowSoftInputMode="adjustResize"

enter image description here

如您所见,键盘隐藏了编辑文本。

这是其他一些帖子和混乱的地方

建议似乎是设置(并查看每个结果): -

  1. android:fitsSystemWindows in root relativeoutout
  2. enter image description here

    很好,这可以修复键盘隐藏编辑文本,但现在顶部的红色条向下移动,这不是我想要的(如果需要,请参阅原始图像)

    1. windowSoftInputMode更改为adjustPan
    2. enter image description here

      正如预期的那样,视图平移和顶部栏丢失。

      在这一点上,我有点迷失,没有提出一个hacky解决方案来调整大小和动态计算,感觉非常脏。

      所以鉴于我上面发布的内容,有没有人有任何解决方案来实现以下目标: -

      • 半透明状态栏(因此红色面板位于其后面)
      • 红色面板在显示软键盘时不会消失
      • 软键盘未覆盖文本控件

      我们还假设为了论证着色状态面板不是一个选项,因为我实际上想要查看状态面板后面的内容,即地图。我用红色面板作为例子。

0 个答案:

没有答案