You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TextInputLayout嵌套AutoCompleteTextView(下拉样式)样式定制问题

解决方案

问题根源在于你将背景状态选择器设置给了TextInputLayout的主题覆盖层,而TextInputLayout自带默认内边距,导致背景轮廓无法贴合整个组件。按照以下步骤调整即可解决:

  1. 修改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>
    
  2. 给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"
        />
    
  3. 优化状态选择器(可选)
    为了让非焦点状态的边框更统一,可将非焦点状态的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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 06:29:52