Android:TextInputLayout提示文本与EditText背景重叠问题求助
解决TextInputLayout提示文本与自定义背景重叠的问题
方法一:设置TextInputLayout的hint内边距
直接给TextInputLayout添加app:hintPadding属性,调整提示文本与背景边框的间距:
<com.google.android.material.textfield.TextInputLayout android:id="@+id/cvvContainer" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" app:expandedHintEnabled="false" android:hint="@string/mango_add_card_cvv_title" app:hintPadding="12dp"> <!-- 根据实际情况调整数值,确保不与背景重叠 --> <com.google.android.material.textfield.TextInputEditText android:id="@+id/cvv" style="@style/EditTextStyle" android:layout_width="match_parent" android:layout_height="wrap_content" android:imeOptions="actionDone" android:inputType="number" android:text="@={viewModel.cardCvv}" /> </com.google.android.material.textfield.TextInputLayout>
方法二:将自定义背景转移到TextInputLayout
利用TextInputLayout的布局管理能力,把背景设置在容器上,避免提示文本布局冲突:
- 移除EditTextStyle中的
android:background属性 - 修改TextInputLayout的属性配置:
<com.google.android.material.textfield.TextInputLayout android:id="@+id/cvvContainer" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" app:expandedHintEnabled="false" android:hint="@string/mango_add_card_cvv_title" app:boxBackgroundMode="none" <!-- 关闭默认的Box背景 --> android:background="@drawable/edit_text_background" android:padding="10dp"> <!-- 替代EditText的padding设置 --> <com.google.android.material.textfield.TextInputEditText android:id="@+id/cvv" style="@style/EditTextStyle" android:layout_width="match_parent" android:layout_height="wrap_content" android:imeOptions="actionDone" android:inputType="number" android:text="@={viewModel.cardCvv}" android:background="@null" /> <!-- 清空EditText的背景 --> </com.google.android.material.textfield.TextInputLayout>
方法三:调整EditText的hint内边距
由于开启了expandedHintEnabled="false",提示文本会作为EditText的占位符显示,直接给EditText设置android:hintPadding控制占位符位置:
<com.google.android.material.textfield.TextInputEditText android:id="@+id/cvv" style="@style/EditTextStyle" android:layout_width="match_parent" android:layout_height="wrap_content" android:imeOptions="actionDone" android:inputType="number" android:text="@={viewModel.cardCvv}" android:hintPadding="10dp 12dp" /> <!-- 分别设置上下左右内边距,按需调整 -->
内容的提问来源于stack exchange,提问作者jack_the_beast
相关产品推荐
相关产品推荐

