android - 约束布局 ListView 在键盘出现时移动

标签 android android-layout android-constraintlayout

我正在制作一个自动显示联系人的应用程序,然后当在 ListView 中单击联系人时,它会直接发送到 EditText 字段。然后他们可以选择是发送消息还是调用该号码。

问题是,当我点击 EditText 时,ListView 也会出现,它覆盖了 EditText、按钮和联系人标签。我猜这是因为手机的键盘。

XML 文件

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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:id="@+id/idLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/backgroundwallpaper2"
    android:orientation="vertical">

    <TextView
        android:id="@+id/contacts"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:text="@string/contacts"
        android:textAlignment="center"
        android:textColor="#000000"
        android:textSize="15pt"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.293" />

    <EditText
        android:id="@+id/number"
        android:layout_width="match_parent"
        android:layout_height="51dp"
        android:layout_marginBottom="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:inputType=""
        android:labelFor="@+id/number"
        android:textColor="#000000"
        android:textSize="25sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.05" />

    <ImageButton
        android:id="@+id/callBtn"
        android:layout_width="57dp"
        android:layout_height="57dp"
        android:layout_marginBottom="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:background="@null"
        android:contentDescription="@string/todo"
        android:text="@string/calls"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.729"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.184"
        app:srcCompat="@drawable/smallcallbtn" />

    <ListView
        android:id="@+id/idList"
        android:layout_width="match_parent"
        android:layout_height="290dp"
        android:layout_marginBottom="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.743"></ListView>

    <ImageButton
        android:id="@+id/imageButton5"
        android:layout_width="57dp"
        android:layout_height="57dp"
        android:layout_marginBottom="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:background="@null"
        android:contentDescription="@string/todo"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.26"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.184"
        app:srcCompat="@drawable/smallmsgbtn" />

</android.support.constraint.ConstraintLayout>

应用截图

enter image description here

最佳答案

试试这个:

找到您有代码的 Activity ,例如 ActivityA 并在 AndroidManifest.xml 中引入这一行:

<activity
   android:name=".activities.ActivityA"
   android:windowSoftInputMode="adjustPan"> 
</activity>

From Android Documentation:

"adjustPan" The activity's main window is not resized to make room for the soft keyboard. Rather, the contents of the window are automatically panned so that the current focus is never obscured by the keyboard and users can always see what they are typing. This is generally less desirable than resizing, because the user may need to close the soft keyboard to get at and interact with obscured parts of the window.

关于android - 约束布局 ListView 在键盘出现时移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51066982/

相关文章:

android - ClassCastException ContentFrameLayout androidx 与系统应用程序中的 support.v7

android - AlertDialog 按钮未包装在 Lollipop 中

android-layout - 如何获得RelativeLayout的宽度和高度

android - 使用运动布局时开始与 UI 交互后,进度条可见性重置

Android Studio 布局编辑器 ConstraintLayout : pack vs chain

android - 旧值在 For each 循环中重复

java - 无法通过 WiFi 连接,但可以通过移动数据连接

java - 如何在Android Studio中常规使用R.id?

java - 带有选项卡的 Activity 中的布局刷新问题

android - app :layout_goneMarginLeft ="" do for views in constraintlayout? 是什么意思