我正在制作一个将自动显示联系人的应用程序,然后在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>
应用的屏幕截图
答案 0 :(得分:0)
尝试一下:
在代码所在的地方找到活动,例如 ActivityA ,并在 AndroidManifest.xml
中引入以下行:<activity
android:name=".activities.ActivityA"
android:windowSoftInputMode="adjustPan">
</activity>
“ adjustPan”活动的主窗口未调整大小以腾出空间 软键盘。而是,窗口的内容是 自动平移,以使当前焦点永远不会被遮挡 键盘和用户始终可以看到他们正在输入的内容。这是 通常不如调整大小理想,因为用户可能需要 关闭软键盘以接近并遮盖其中的部分 窗口。
答案 1 :(得分:0)
如果您希望在任何情况下或当用户单击editText时,屏幕都不应移动布局。您可以将windowSoftInputMode添加到adjustNothing,这不会移动布局。该行将添加到清单中。以下是清单文件中的代码。
<activity android:name=".Activities.Main2Activity"
android:windowSoftInputMode="adjustNothing">
出于测试目的,我使用活动名称作为MainActivity2在活动中添加android:windowSoftInputMode行。 希望有帮助。