软键盘覆盖按钮

时间:2021-04-02 21:26:59

标签: android android-layout

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

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>

1 个答案:

答案 0 :(得分:0)

您的按钮似乎没有底部约束?您可能希望向父级添加底部约束:

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

还在您的清单中使用以下内容:

android:windowSoftInputMode="adjustResize">

通过这些更改,当打开键盘时,lostButton 应该移动到键盘上方。