android - 键盘出现时约束布局ListView正在移动
问题描述
我正在制作一个会自动显示联系人的应用程序,然后当在 a 中单击联系人时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>
应用截图
解决方案
尝试这个:
找到您有代码的活动,例如ActivityA ,并在AndroidManifest.xml中引入这一行:
<activity
android:name=".activities.ActivityA"
android:windowSoftInputMode="adjustPan">
</activity>
"adjustPan" 活动的主窗口没有调整大小来为软键盘腾出空间。相反,窗口的内容会自动平移,因此当前焦点永远不会被键盘遮挡,用户始终可以看到他们正在输入的内容。这通常不如调整大小可取,因为用户可能需要关闭软键盘才能到达窗口的模糊部分并与之交互。
推荐阅读
- php - 动态变量名 php 7.4 和赋值
- reactjs - 如何在本机反应中使用带变量的对象?
- c# - 使用工作单元模式的依赖注入
- javascript - 使用 EventListener keyup 格式化输入字段电话号码
- javascript - 外部 js 文件不适用于 HTML 文件
- mysql - 防止 MySQL 用户创建/删除数据库
- python - 生产中的 Django i18n
- jenkins - 构建 json 在工件 UI 中不显示保留策略
- spring-boot - 在 application.properties 文件中配置自定义 Kafka Consumer Deserializer。[弹簧靴]
- python - 旋转大型数据框pyspark的最有效方法