键盘将listView向上推



我在Android UI设计中是很新的,所以请忍受我。在相对布局中,我有许多不同的控件 - 文本视图,ET,按钮等,在底部,列出了listView。关于活动的负载,当焦点转移到第一个输入字段(编辑文本)时,键盘将沿ListView向上推动并与其他字段重叠。

下面是布局xml:

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/holo_orange_light"
    tools:context="com.as.myexpense.AddExpenseAct"
    tools:layout_editor_absoluteX="0dp"
    tools:layout_editor_absoluteY="81dp">
    <TextView
   android:id="@+id/tvShowExpnDate"
    android:layout_width="385dp"
    android:layout_height="19dp"
    android:allowUndo="true"
    android:autoSizeTextType="uniform"
    android:background="@color/colorAccent"
    android:fontFamily="sans-serif"
    android:foregroundTintMode="src_over"
    android:text="Expense for the date"
    android:textColor="@android:color/background_dark"
    android:textSize="12sp"
    android:textStyle="bold"
    tools:ignore="HardcodedText,MissingConstraints,RtlHardcoded,UnusedAttribute"
    tools:layout_editor_absoluteX="16dp"
    tools:layout_editor_absoluteY="7dp" />
    <TextView
    android:id="@+id/txtChangeExpenseDate"
    android:layout_width="88dp"
    android:layout_height="17dp"
    android:background="@android:color/holo_green_light"
    android:text="Change Date"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/tvShowExpnDate"
    tools:ignore="HardcodedText,MissingConstraints,RtlHardcoded"
    android:layout_below="@+id/tvShowExpnDate"
    android:layout_alignStart="@+id/etExpenseAmount" />
    <TextView
    android:id="@+id/tvAmount"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignStart="@+id/imgCategory"
    android:layout_below="@+id/txtChangeExpenseDate"
    android:text="Amount"
    android:textSize="20sp"
    app:layout_constraintTop_toBottomOf="@+id/tvShowExpnDate"
    tools:layout_editor_absoluteX="48dp" />
    <TextView
    android:id="@+id/tvExpenseCategory"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignStart="@+id/imgCategory"
    android:layout_below="@+id/etExpenseAmount"
    android:text="Choose category"
    android:textSize="20sp"
    app:layout_constraintTop_toBottomOf="@+id/tvAmount"
    tools:ignore="HardcodedText,MissingConstraints"
    tools:layout_editor_absoluteX="48dp" />
    <EditText
    android:id="@+id/etExpenseAmount"
    android:layout_width="125dp"
    android:layout_height="40dp"
    android:ems="8"
    android:inputType="numberDecimal"
    android:labelFor="@+id/etExpenseAmount"
    app:layout_constraintLeft_toRightOf="@+id/tvAmount"
    app:layout_constraintTop_toBottomOf="@+id/tvShowExpnDate"
    app:srcCompat="@android:color/holo_orange_light"
    android:layout_alignTop="@+id/tvAmount"
    android:layout_toEndOf="@+id/imgCategory"
    android:layout_marginStart="12dp" />
    <ImageButton
    android:id="@+id/imgCategory"
    android:layout_width="75dp"
    android:layout_height="75dp"
    android:layout_alignStart="@+id/tvTotalExpense"
    android:layout_below="@+id/tvExpenseCategory"
    android:adjustViewBounds="true"
    android:scaleType="fitXY"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/tvExpenseCategory"
    app:srcCompat="@android:color/holo_orange_light"
    tools:ignore="ContentDescription" />
    <EditText
    android:id="@+id/etShortDescription"
    android:layout_width="200dp"
    android:layout_height="39dp"
    android:layout_above="@+id/btnAddExpnToList"
    android:layout_marginBottom="10dp"
    android:layout_toEndOf="@+id/tvExpenseCategory"
    android:autoText="true"
    android:ems="10"
    android:hint="@string/short_description"
    android:inputType="textPersonName"
    android:maxLines="1"
    app:layout_constraintLeft_toRightOf="@+id/imgCategory"
    app:layout_constraintTop_toTopOf="parent"
    tools:ignore="Deprecated,LabelFor" />
    <Button
    android:id="@+id/btnAddExpnToList"
    android:layout_width="118dp"
    android:layout_height="50dp"
    android:layout_alignBottom="@+id/floatingActionButton"
    android:layout_alignParentStart="true"
    android:text="@string/Add"
    android:textColor="@android:color/background_dark"
    app:layout_constraintLeft_toRightOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/etShortDescription" />
    <Button
    android:id="@+id/btnCancel"
    android:layout_width="118dp"
    android:layout_height="50dp"
    android:layout_below="@+id/etShortDescription"
    android:layout_marginStart="17dp"
    android:layout_toEndOf="@+id/btnAddExpnToList"
    android:text="@string/Cancel"
    android:textColor="@android:color/background_dark"
    android:visibility="invisible"
    app:layout_constraintLeft_toRightOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/etShortDescription" />
    <ListView
    android:id="@+id/lvExpenses"
    android:layout_width="387dp"
    android:layout_height="312dp"
    android:layout_alignParentBottom="true"
    android:layout_alignStart="@+id/tvTotalExpense"
    android:layout_marginBottom="5dp"
    android:layout_marginTop="5dp"
    android:background="?attr/colorButtonNormal"
    app:layout_constraintLeft_toRightOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/btnAddExpnToList" />
    <TextView
    android:id="@+id/tvTotalExpense"
    android:layout_width="288dp"
    android:layout_height="20dp"
    android:layout_above="@+id/lvExpenses"
    android:layout_marginStart="10dp"
    android:text="Total expense "
    android:visibility="invisible"
    app:layout_constraintLeft_toRightOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/btnAddExpnToList"
    tools:ignore="HardcodedText" />
    <android.support.design.widget.FloatingActionButton
    android:id="@+id/floatingActionButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/tvTotalExpense"
    android:layout_alignEnd="@+id/etShortDescription"
    android:layout_marginBottom="6dp"
    android:clickable="true"
    android:focusable="true"
    app:srcCompat="@android:color/holo_orange_dark" />
    <TextView
    android:id="@+id/tvExpnCatDisplay"
    android:layout_width="90dp"
    android:layout_height="20dp"
    android:layout_above="@+id/btnAddExpnToList"
    android:layout_alignStart="@+id/imgCategory"
    android:background="#00000000"
    android:textColor="@color/common_google_signin_btn_text_dark_focused"
    android:textSize="18sp"
    android:textStyle="normal|bold" />
    <TextView
    android:id="@+id/textView3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignStart="@+id/spTxnType"
    android:layout_below="@+id/tvShowExpnDate"
    android:layout_marginTop="9dp"
    android:text="@string/payment_type"
    android:textSize="18sp" />
    <Spinner
    android:id="@+id/spTxnType"
    android:layout_width="120dp"
    android:layout_height="wrap_content"
    android:layout_below="@+id/textView3"
    android:layout_toEndOf="@+id/btnCancel"
    android:entries="@array/txnType_name"
    android:spinnerMode="dialog"
    android:theme="@style/AlertDialog.AppCompat" />
    </RelativeLayout>

以下是屏幕截图:

在屏幕的负载上

预期视图

" adjustresize"

活动的主窗口始终进行调整以腾出屏幕上软键盘的空间。

" awadpan"

活动的主窗口没有调整为软键盘的空间。相反,窗口的内容会自动放置,因此键盘永远不会掩盖当前的焦点,用户可以始终看到他们在键入的内容。通常,这比调整大小不太理想,因为用户可能需要关闭软键盘才能进入并与窗户的模糊部分进行交互。

根据您的评论,在活动清单中使用以下内容

最新更新