软键盘覆盖按钮



我知道这个问题已经被问了一百次了,但这里关于堆栈溢出的其他问题都没有解决我的问题。在我的布局中,当用户在字段中输入年龄和身高时,键盘会覆盖这两个按钮。我使用的是约束布局,但没有任何效果。我试过

android:windowSoftInputMode="stateVisible|adjustResize" in the android manifest
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN and  getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE
android:windowSoftInputMode="adjustResize

什么都不管用。感谢您的帮助。这是我的主要活动,如果这有助于

<?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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:fitsSystemWindows="true">
<TextView
android:id="@+id/appTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="@string/appTitle"
android:textColor="@color/colorPrimary"
android:textSize="30sp"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<EditText
android:id="@+id/bodyWeight"
android:layout_width="330dp"
android:layout_height="wrap_content"
android:layout_marginTop="22dp"
android:ems="10"
android:hint="@string/bodyWeight"
android:inputType="number"
android:textColor="@color/colorPrimary"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/appTitle" />
<TextView
android:id="@+id/activitySelection"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="28dp"
android:text="@string/activitySelection"
android:textSize="18sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/bodyWeight" />
<Spinner
android:id="@+id/activityLevel"
android:layout_width="368dp"
android:layout_height="wrap_content"
android:layout_marginTop="28dp"
android:entries="@array/activityLevel"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/activitySelection" />
<Button
android:id="@+id/loseButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="180dp"
android:text="@string/lossButton"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.503"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/activityLevel" />
<Button
android:id="@+id/gainButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:text="@string/gainButton"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/loseButton" />
<EditText
android:id="@+id/inchHeight"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="27dp"
android:ems="10"
android:hint="@string/inchHeight"
android:inputType="number"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/activityLevel" />
<EditText
android:id="@+id/yearsOld"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="29dp"
android:ems="10"
android:hint="@string/YearsOld"
android:inputType="number"
app:layout_constraintBottom_toTopOf="@+id/loseButton"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent" />
</android.support.constraint.ConstraintLayout>

您的按钮似乎没有底部约束?您可能希望为父项添加一个底部约束:

<Button
android:id="@+id/loseButton"
...
app:layout_constraintBottom_toBottomOf="parent" />

同时在清单中使用以下内容:

android:windowSoftInputMode="adjustResize">

有了这些更改,当打开键盘时,loseButton应该会移动到键盘上方。

最新更新