将按钮固定在键盘上方

时间:2019-05-30 14:47:53

标签: android android-layout android-softkeyboard

有一个卡,在底部的几个文本字段和按钮应该显示在键盘上方,而不是隐藏在键盘下方。 最好在活动清单上不添加任何标签。

我使用了 ScrollView fitsSystemWindows = true 的一个老技巧。 它可以正常工作,但是当您隐藏键盘时,视图将返回并在顶部偏移(大概等于状态栏的大小)。

我该如何解决?还是其他方式,也许通过行为 coordinatorLayout 来实现?

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true">

    <android.support.v7.widget.CardView
        android:id="@+id/typeCardView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true">

        // + some views

    </android.support.v7.widget.CardView>

    <ScrollView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/completeButton"
        android:layout_below="@+id/typeCardView">

        //InputEditText ...

    </ScrollView>

    <android.support.design.button.MaterialButton
        android:id="@+id/completeButton"
        style="@style/Widget.AppCompat.Button.Colored"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_gravity="bottom"
        android:layout_margin="@dimen/default_padding"
        android:enabled="false"
        android:insetTop="0dp"
        android:insetBottom="0dp"
        android:text="@string/order_delivery_complete"
        android:textAllCaps="false"
        android:textColor="@android:color/white"
        android:theme="@style/AccentButton"
        app:cornerRadius="2dp" />

</RelativeLayout>

0 个答案:

没有答案