/ / Jak zmienić tło uchwytu AutoCompleteTextView - Java, Android, XML

Jak zmienić tło obsługi AutoCompleteTextView - java, android, xml

Próbuję dostosować tło uchwytu AutoCompleteTextView.

Uchwyt jest ikoną pod kursorem, gdy zaznaczony jest tekst w AutoCompleteTextView.

Jak widać na obrazku, po zaznaczeniu tekstu tło uchwytu (kwadratowe za zieloną kroplą i pod kursorem) ma kolor, którego nie wiem skąd pochodzi.

wprowadź opis obrazu tutaj

Oto moje podejście:

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>

Widok

<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" />

Chcę mieć możliwość przezroczystości uchwytu w tle. Mam wiele godzin, próbując to rozwiązać.

Mam nadzieję, że istnieje przynajmniej obejście tego problemu.

Z góry dziękuję.

Odpowiedzi:

2 dla odpowiedzi № 1

1) Aby rozwiązać problem tła uchwytu (kwadratowego za zieloną kroplą i pod kursorem), który ma dziwny kolor tła, musisz zdefiniować styl taki:

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

1) Aby zmienić kolor tła DropDownMenu AutoCompleteTextView, musisz utworzyć styl w następujący sposób:

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

i dodaj tę linię w AutocompleteStyle

<item name="android:dropDownListViewStyle">@style/DropDownMenuBackground</item>

3) Dodaj ten wiersz do AutoCompleteTextView, aby uniknąć jego rodzimego stylu:

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

Jak wygląda teraz pełna 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>

I oczywiście nie zapomnij dodać swojego stylu do widoku autouzupełniania:

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

0 dla odpowiedzi nr 2

Spróbuj tego

<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" />

0 dla odpowiedzi № 3

wypróbuj tę właściwość „android: textSelectHandle”


0 dla odpowiedzi nr 4

Możesz stworzyć swój własny styl / motyw tylko dla tego EditText i zmień ColorAccent:

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