Редактирование стиля MultiAutocompleteTextView - PullRequest
0 голосов
/ 30 сентября 2018

Подобные вопросы

Применение стиля к MultiAutoCompleteTextView : проблема была в том, что OP намеревался переопределить некоторые атрибуты, которые стиль не объявлял.Это не моя проблема.

android: стиль MultiAutoCompleteTextView, такой как gmail : здесь OP хочет установить тот же стиль, что и GMail, и в ответе показано 2 API.Кроме того, XML-код не отображается.Таким образом, это очень отличается от моего вопроса и ожидает.

Проблема

Мой материал MultiAutoCompleteTextView стиль, кажется, не применяется.Точнее, я просто хочу, чтобы нижняя строка по умолчанию моего (материала!) Виджета стала желтой и 1px высоты.По умолчанию это серый цвет и, возможно, 3 пикселя высоты, как вы можете видеть ниже.

enter image description here (это отображается, когда начинается фрагмент моей деятельности, и это стиль материала по умолчанию:это MultiAutoCompleteTextView)

что я пробовал

много чего!: -)

  1. Я определил стиль в теме моего приложения для переопределения android:autoCompleteTextViewStyle ( NB: android:autoCompleteTextViewStyle не существует )

  2. В переопределении я попытался a) установить цвета - цвет фона, цвет, цвет акцента, colorControlNormal, colorFocusedHighlight и т. Д. И т. Д. И т. Д. - и b) установить фон, определенный в XML-файле. Ничего не работает.

Источники

Тема приложения

<style name="" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="android:autoCompleteTextViewStyle">@style/my_autoCompleteTextViewStyle</item>
    </style>

@ style / my_autoCompleteTextViewStyle

<style name="my_autoCompleteTextViewStyle" parent="android:Widget.Material.Light.AutoCompleteTextView">
    <item name="android:background">@drawable/background_autocompletetextview</item>

    <item name="android:color">@color/colorRichYellow</item>
    <item name="android:borderlessButtonStyle">@color/colorRichYellow</item>
    <item name="android:colorAccent">@color/colorRichYellow</item>
    <item name="android:colorControlHighlight">@color/colorRichYellow</item>
    <item name="android:colorActivatedHighlight">@color/colorRichYellow</item>
    <item name="android:colorControlActivated">@color/colorRichYellow</item>
    <item name="android:colorControlNormal">@color/colorRichYellow</item>
    <item name="android:colorBackground">@color/colorRichYellow</item>
    <item name="android:colorFocusedHighlight">@color/colorRichYellow</item>
</style>

@ drawable / background_autocompletetextview

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="line">
    <stroke android:width="1dp" android:color="@color/colorRichYellow" />
</shape>

Мой вопрос

Я не понимаю, почему это не работает.Я уже сделал это для spinner (выбрать поле), и это отлично сработало ... Как я могу заставить его работать для моего материала MultiAutoCompleteTextView?

1 Ответ

0 голосов
/ 02 октября 2018

Планировщик Я думаю, вам нужно добавить эту строку в MultiAutoCompleteTextView

Прежде всего, создайте фоновый ресурс для вашего MultiAutoCompleteTextView с именем " underline.xml "

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:bottom="1dp"
        android:left="-2dp"
        android:right="-2dp"
        android:top="-2dp">
        <shape android:shape="rectangle" >
            <stroke
                android:width="1dp"
                android:color="@color/colorRichYellow" />
            <solid android:color="#00FFFFFF" />
            <padding
                android:bottom="5dp"
                android:left="5dp"
                android:right="5dp"
                android:top="5dp" />
        </shape>
    </item>
</layer-list>

После этого просто установите для своего элемента MultiAutoCompleteTextView следующее:

android:background="@drawable/underline"

Нам нужно сделать это, потому что вы тоже хотите изменить размер строки.Если вам нужно только изменить цвет нижней строки, вы можете просто установить

app:backgroundTint="@color/colorRichYellow"

, избегая создания underline.xml файла и без установки android: background поле

ОБНОВЛЕНИЕ (как указано в комментариях)

Если вы хотите использовать свой стиль, добавьте эту строку в файл стилей:

<style name="my_autoCompleteTextViewStyle" parent="android:Widget.Material.Light.AutoCompleteTextView">
    ....
    <item name="android:background">@drawable/underline</item>
    ....
</style>

Таким образом,Вы можете иметь этот эффект на всех ваших ACEditText, установив свой стиль!

...