android:windowSoftInputMode =“ adjustResize”和Recyclerview

时间:2018-09-03 00:51:44

标签: android android-layout android-recyclerview android-softkeyboard

我按此顺序具有垂直方向的布局:

  1. 定义为LinearLayout的表头
  2. 行定义为recyclerview
  3. TextInputLayout
  4. 另一个TextInputLayout
  5. 一个按钮

recyclerview动态填充网络请求的结果。

在按下任何TextInputLayout之前,我想查看页面顶部的表(1和2),下面还有其他所有内容。

如果单击TextInputLayout(3或4),则会出现键盘,并且recyclerview(2)应该从底部缩小。这是布局:

<?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">

<ProgressBar
    android:id="@+id/pb"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"/>

<LinearLayout
    android:id="@+id/header"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:visibility="gone">
    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="@string/id"/>
    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="@string/first_name"/>
    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="@string/last_name"/>
    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="@string/telephone"/>
    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="@string/address"/>
</LinearLayout>

<android.support.v7.widget.RecyclerView
    android:id="@+id/rv"
    android:layout_width="match_parent"
    android:layout_height="@dimen/table_height"
    android:layout_below="@id/header"
    android:layout_above="@id/input_layout_name"/>

<TextView
    android:id="@+id/update_btn"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:text="@string/update"
    android:visibility="gone"/>

<android.support.design.widget.TextInputLayout
    android:id="@+id/input_layout_phone"
    android:layout_above="@id/update_btn"
    android:layout_width="@dimen/input_width"
    android:layout_height="wrap_content"
    android:visibility="gone">

    <EditText
        android:id="@+id/input_amount"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/phone_hint" />

</android.support.design.widget.TextInputLayout>

<android.support.design.widget.TextInputLayout
    android:id="@+id/input_layout_name"
    android:layout_above="@id/input_layout_phone"
    android:layout_width="@dimen/input_width"
    android:layout_height="wrap_content"
    android:visibility="gone">

    <EditText
        android:id="@+id/input_name"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/name_hint" />

</android.support.design.widget.TextInputLayout>

清单清单类似

<activity android:name=".activities.DetailsActivity"/>

在键盘出现后缩小recyclerview。直到我告诉recyclerview在第一个TextInputLayout上方进行布局,这一切都没有缩小。

在键盘出现之前,我注意到表头(1)和行(2)之间的间距等于2个TextInputLayouts的高度。当键盘出现时,recyclerview向上移动并消除间隙,使其完全位于标题下方。如何固定我的布局以使桌子保持在一起,出现键盘时缩小?

提前谢谢

0 个答案:

没有答案