android - 软键盘覆盖按钮
问题描述
我知道这个问题已经被问了一百次了,但是这里关于堆栈溢出的其他问题都没有解决我的问题。在我的布局中,当用户在字段中输入年龄和身高时,键盘会覆盖两个按钮。我正在使用约束布局,但没有什么对我有用。我努力了
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">
通过这些更改,当打开键盘时,looseButton 应该移动到键盘上方。
推荐阅读
- unicode - FastText 显示中文 (WindowsOS?)
- mysql - Nextcloud (docker) 无法连接到 Mysql (docker) SQLSTATE[HY000] [2002]
- typescript - tsc 忽略 .yaml 文件,即使它设置为包含在 tsconfig.json 中
- android - SetForegroundAsync 在 Workmanager 的 ListenableWorker 中创建前台服务不起作用
- php - 我想为安装在一个 WordPress 中的 2 个自定义主题创建 ACF
- javascript - iink - 无效的箭头函数参数
- ajax - 如何使用 Laravel 分页执行 select2 结果无限滚动
- javascript - 每次构建后如何将路由器视图发布到后端一次
- python - requests 库的 session 对象是如何工作的?
- javascript - js无法加载模块