TextInputLayout末尾图标遮挡边框问题求助
针对你遇到的主题全局设置android:background="@color/white"导致下拉图标遮挡边框的问题,给你三个可行的解决办法:
办法一:给TextInputLayout单独设置局部主题
全局主题的android:background优先级高于控件自身设置,直接在控件里设透明无效。可以给TextInputLayout单独指定一个主题,覆盖全局的background设置:
布局代码修改:
<com.google.android.material.textfield.TextInputLayout style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.ExposedDropdownMenu" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="20dp" android:theme="@style/ExposedDropdownLocalTheme" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent"> <AutoCompleteTextView android:id="@+id/autoCompleteT" android:layout_width="match_parent" android:layout_height="match_parent" android:inputType="none" android:text="Choose Programming language" /> </com.google.android.material.textfield.TextInputLayout>
在styles.xml中添加局部主题:
<style name="ExposedDropdownLocalTheme" parent="Theme.MaterialComponents.Light"> <item name="android:background">@color/transparent</item> </style>
办法二:替换全局背景设置为windowBackground
如果全局设置android:background="@color/white"是为了统一页面背景,建议改用windowBackground属性,这样不会影响控件的背景设置:
修改theme.xml中的代码:
<!-- 删除原有全局背景设置 --> <!-- <item name="android:background">@color/white</item> --> <!-- 替换为以下代码 --> <item name="android:windowBackground">@color/white</item>
这个方法从根源解决问题,不会影响任何控件的背景属性,推荐优先尝试。
办法三:自定义下拉图标位置
如果上面两种方法都无法使用,可以通过调整内边距给图标留出空间:
给TextInputLayout添加以下属性:
app:boxPaddingEnd="32dp"
通过boxPaddingEnd增大右侧内边距,避免下拉图标被边框遮挡。
内容的提问来源于stack exchange,提问作者kallis
相关产品推荐
相关产品推荐

