键盘不会在EditText上方推送布局

时间:2017-10-13 20:56:53

标签: android android-layout mobile

在我的应用程序中,我有以下布局:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <RelativeLayout
            android:id="@+id/fragment_container"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1" />

        <EditText
            android:id="@+id/edit_text"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom"
            android:background="@color/text"
            android:gravity="center_horizontal"
            android:hint="@string/input_hint"
            android:inputType="textVisiblePassword"
            android:padding="@dimen/margin"
            android:singleLine="true"
            android:textColor="@color/input_text"
            android:textColorHint="@color/input_hint">
        </EditText>

    </LinearLayout>

单击EditText时,键盘会向上推动屏幕,包括ActionBar,以便EditText位于键盘上方。我想要的只是EditText出现在键盘上,但上面的FragmentContainer保持完整“作为背景”。我在AndroidManifest.xml文件中使用android:windowSoftInputMode =“adjustResize”得到了一些,但我的应用程序是全屏的,这个标签显然不能用于全屏。

1 个答案:

答案 0 :(得分:4)

据我所知,没有办法实现你所描述的内容。

您可以选择adjustNothing

  • fragment_container:当键盘出现时,窗口根本没有调整。这将阻止adjustResize被移动或调整大小,但也会使键盘覆盖您的文本输入字段。

  • fragment_container:键盘出现时,窗口垂直“缩小”。这将导致adjustPan占用的空间少于键盘关闭时的空间,可能会影响您的片段布局。

  • fragment_container:当键盘出现时,屏幕向上“推”。这会导致adjustUnspecified的顶部被屏幕边缘剪裁。

  • adjustNothing:允许系统在上述三个选项中进行选择。

下面是一些(希望)有助于说明这些属性的图片。

Keyboard closed

键盘关闭的布局

Keyboard open; adjustNothing Keyboard open; adjustResize Keyboard open; adjustPan

从左到右:adjustResizeadjustPanmarkerOptions.icon(bitmapFromDrawable(getActivity(), R.drawable.your_gradient));