如何更改AutoCompleteTextView句柄背景

时间:2017-01-19 06:14:30

标签: java android xml

我正在尝试自定义AutoCompleteTextView句柄背景。

当选择AutoCompleteTextView中的文本时,句柄是光标下的图标。

正如您在图像中看到的那样,当选择文本时,手柄背景(绿色水滴和光标下方的正方形)有一种我不知道它来自何处的颜色。

enter image description here

这是我正在做的方法:

style.xml

<style name="Autocomplete" parent="Widget.AppCompat.AutoCompleteTextView">
    <item name="android:popupBackground">@android:color/transparent</item>
    <item name="android:background">@color/text_black_color</item>
</style>

视图

<AutoCompleteTextView
        android:id="@+id/search"
        android:theme="@style/Autocomplete" 
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="center"
        android:background="@android:color/transparent"
        android:drawablePadding="@dimen/spacing_sm"
        android:drawableStart="@drawable/ic_search"
        android:hint="@string/search"
        android:imeOptions="actionSearch"
        android:inputType="text"
        android:textColor="@color/white"
        android:textColorHint="@color/colorTextSearch"
        android:textSize="15.2sp"
        tools:ignore="MissingPrefix" />

我希望能够让句柄背景变得透明。我有很多时间试图解决这个问题。

我希望至少有一种解决方法。

提前致谢。

4 个答案:

答案 0 :(得分:2)

1)为了解决显示奇怪背景颜色的手柄背景(绿色滴和光标下方的正方形)的问题,你必须定义这样的样式:

<style name="AutocompleteStyle">
    <item name="android:background">@android:color/transparent</item>
</style>

1)要更改AutoCompleteTextView的DropDownMenu背景颜色,您必须创建一个样式:

<style name="DropDownMenuBackground">
    <item name="android:background">your_color</item>
</style>

并在AutocompleteStyle

中添加此行
<item name="android:dropDownListViewStyle">@style/DropDownMenuBackground</item>

3)在AutoCompleteTextView中添加此行以避免其原生样式:

android:background="@android:color/transparent"

现在完整的style.xml如何显示:

<style name="AutocompleteStyle">
    <item name="android:background">@android:color/transparent</item>
    <item name="android:dropDownListViewStyle">@style/DropDownMenuBackground</item>
</style>

<style name="DropDownMenuBackground">
    <item name="android:background">@color/colorSearch</item>
</style>

显然,不要忘记将您的风格添加到autocompletetextview:

<AutoCompleteTextView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/transparent"
    android:imeOptions="actionSearch"
    android:theme="@style/AutocompleteStyle"
/>

答案 1 :(得分:0)

试试这个

<style name="Autocomplete" parent="Widget.AppCompat.AutoCompleteTextView">
    <item name="android:background">@android:color/transparent</item>
</style>



<AutoCompleteTextView
        android:id="@+id/search"
        android:theme="@style/Autocomplete" 
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="center"
         android:background="@android:color/transparent"
        android:drawablePadding="@dimen/spacing_sm"
        android:drawableStart="@drawable/ic_search"
        android:hint="@string/search"
        android:imeOptions="actionSearch"
        android:inputType="text"
        android:textColor="@color/white"
        android:textColorHint="@color/colorTextSearch"
        android:textSize="15.2sp"
        tools:ignore="MissingPrefix" />

答案 2 :(得分:0)

尝试此属性“android:textSelectHandle”

答案 3 :(得分:0)

您可以创建自己的 仅适用于此EditText的样式/主题并更改ColorAccent:

<style name="EditTextColorCustom" parent="@style/AppBaseTheme">
    <!-- Customize your theme here. -->
    <item name="colorAccent">@color/colorAccent</item>
</style>