我想要一个按钮,当键盘打开时,它应该粘在底部。
具有长格式的线性布局,在垂直方向上包含多个 edittext。
按钮在scrollview
的底部和外面
list 有一个adjustsize
属性
因此,当我单击任何编辑文本时,按钮 会出现在键盘顶部。
我什至尝试过 android:fitsToSystemWindow=true
但没有任何效果
我想要这样的东西,按钮不会出现在键盘上,按钮也应该粘在底部。我怎样才能做到这一点?
这是我的 XML 文件
<androidx.constraintlayout.widget.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=".items.ui.AddEditItemFragment">
<ScrollView android:id="@+id/sv_add_edit_item" android:layout_width="match_parent"
android:layout_height="0dp" app:layout_constraintBottom_toTopOf="@+id/btn_save"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content"
android:orientation="vertical">
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/itemNameInputLayout" android:layout_width="match_parent"
android:layout_height="wrap_content" android:background="@color/white"
android:padding="@dimen/default_margin_padding" app:errorEnabled="true"
app:errorTextAppearance="@style/ErrorText" app:hintTextAppearance="@style/HintText">
<com.google.android.material.textfield.TextInputEditText
style="@style/editTextInputLayout" android:layout_width="match_parent"
android:layout_height="wrap_content" android:inputType="textCapWords"
android:maxLines="1" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/itemNameInputLayout" android:layout_width="match_parent"
android:layout_height="wrap_content" android:background="@color/white"
android:padding="@dimen/default_margin_padding" app:errorEnabled="true"
app:errorTextAppearance="@style/ErrorText" app:hintTextAppearance="@style/HintText">
<com.google.android.material.textfield.TextInputEditText
style="@style/editTextInputLayout" android:layout_width="match_parent"
android:layout_height="wrap_content" android:inputType="textCapWords"
android:maxLines="1" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/itemNameInputLayout" android:layout_width="match_parent"
android:layout_height="wrap_content" android:background="@color/white"
android:padding="@dimen/default_margin_padding" app:errorEnabled="true"
app:errorTextAppearance="@style/ErrorText" app:hintTextAppearance="@style/HintText">
<com.google.android.material.textfield.TextInputEditText
style="@style/editTextInputLayout" android:layout_width="match_parent"
android:layout_height="wrap_content" android:inputType="textCapWords"
android:maxLines="1" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/itemNameInputLayout" android:layout_width="match_parent"
android:layout_height="wrap_content" android:background="@color/white"
android:padding="@dimen/default_margin_padding" app:errorEnabled="true"
app:errorTextAppearance="@style/ErrorText" app:hintTextAppearance="@style/HintText">
<com.google.android.material.textfield.TextInputEditText
style="@style/editTextInputLayout" android:layout_width="match_parent"
android:layout_height="wrap_content" android:inputType="textCapWords"
android:maxLines="1" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/itemNameInputLayout" android:layout_width="match_parent"
android:layout_height="wrap_content" android:background="@color/white"
android:padding="@dimen/default_margin_padding" app:errorEnabled="true"
app:errorTextAppearance="@style/ErrorText" app:hintTextAppearance="@style/HintText">
<com.google.android.material.textfield.TextInputEditText
style="@style/editTextInputLayout" android:layout_width="match_parent"
android:layout_height="wrap_content" android:inputType="textCapWords"
android:maxLines="1" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/itemNameInputLayout" android:layout_width="match_parent"
android:layout_height="wrap_content" android:background="@color/white"
android:padding="@dimen/default_margin_padding" app:errorEnabled="true"
app:errorTextAppearance="@style/ErrorText" app:hintTextAppearance="@style/HintText">
<com.google.android.material.textfield.TextInputEditText
style="@style/editTextInputLayout" android:layout_width="match_parent"
android:layout_height="wrap_content" android:inputType="textCapWords"
android:maxLines="1" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/itemNameInputLayout" android:layout_width="match_parent"
android:layout_height="wrap_content" android:background="@color/white"
android:padding="@dimen/default_margin_padding" app:errorEnabled="true"
app:errorTextAppearance="@style/ErrorText" app:hintTextAppearance="@style/HintText">
<com.google.android.material.textfield.TextInputEditText
style="@style/editTextInputLayout" android:layout_width="match_parent"
android:layout_height="wrap_content" android:inputType="textCapWords"
android:maxLines="1" />
</com.google.android.material.textfield.TextInputLayout>
</LinearLayout>
</ScrollView>
<Button android:id="@+id/btn_save" style="@style/buttonThemeColor"
android:layout_width="match_parent" android:text="@string/save"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>```
Any help will be appreciated
最佳答案
一种方法是添加全局监听器来检测键盘是否显示。然后相应地隐藏/显示您的按钮。
您可以从我的this answer 寻求帮助同样。
关于android - 按钮应该粘在底部,带有 adjustResize,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58983549/