在我的应用程序中,我有以下布局:
<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”得到了一些,但我的应用程序是全屏的,这个标签显然不能用于全屏。
答案 0 :(得分:4)
据我所知,没有办法实现你所描述的内容。
您可以选择adjustNothing
:
fragment_container
:当键盘出现时,窗口根本没有调整。这将阻止adjustResize
被移动或调整大小,但也会使键盘覆盖您的文本输入字段。
fragment_container
:键盘出现时,窗口垂直“缩小”。这将导致adjustPan
占用的空间少于键盘关闭时的空间,可能会影响您的片段布局。
fragment_container
:当键盘出现时,屏幕向上“推”。这会导致adjustUnspecified
的顶部被屏幕边缘剪裁。
adjustNothing
:允许系统在上述三个选项中进行选择。
下面是一些(希望)有助于说明这些属性的图片。
键盘关闭的布局
从左到右:adjustResize
,adjustPan
和markerOptions.icon(bitmapFromDrawable(getActivity(), R.drawable.your_gradient));