TextInputLayout嵌套AutoCompleteTextView(下拉样式)样式定制问题
解决方案
问题根源在于你将背景状态选择器设置给了TextInputLayout的主题覆盖层,而TextInputLayout自带默认内边距,导致背景轮廓无法贴合整个组件。按照以下步骤调整即可解决:
修改
TextInputLayout样式
更新til_dropDown样式,移除默认边框并将自身背景设为透明,避免遮挡AutoCompleteTextView的背景:<style name="til_dropDown" parent="Widget.Material3.TextInputLayout.FilledBox.ExposedDropdownMenu"> <item name="android:textColorHint">#666666</item> <item name="boxStrokeWidth">0dp</item> <item name="boxStrokeWidthFocused">0dp</item> <item name="android:background">@android:color/transparent</item> <item name="materialThemeOverlay">@style/til_dropdown_materialThemOverlay</item> </style> <style name="til_dropdown_materialThemOverlay" > <item name="backgroundTint">@android:color/transparent</item> <item name="android:textSize">15sp</item> <item name="android:textColor">#112531</item> </style>给
AutoCompleteTextView直接设置背景
调整布局中的AutoCompleteTextView,将状态选择器背景直接应用给它,并调整内边距确保轮廓完整包裹:<AutoCompleteTextView android:layout_width="match_parent" android:layout_height="50dp" android:inputType="none" android:padding="10dp" android:text="Hola" android:background="@drawable/textinputlayout_edittext" android:backgroundTint="@android:color/transparent" />优化状态选择器(可选)
为了让非焦点状态的边框更统一,可将非焦点状态的stroke宽度设为2dp,颜色与背景一致,避免组件大小变化:<item> <shape android:shape="rectangle"> <solid android:color="#F5F5F5"/> <stroke android:width="2dp" android:color="#F5F5F5"/> <corners android:radius="3dp"/> </shape> </item>
调整完成后,AutoCompleteTextView获得焦点时,蓝色轮廓会完整包裹整个组件,不再受TextInputLayout内边距的影响。
内容的提问来源于stack exchange,提问作者Christian
相关产品推荐
相关产品推荐

