Как изменить цвет текста ввода текста подчеркивания текста, когда не сфокусировано? - PullRequest
0 голосов
/ 10 мая 2019

Я использую TextinputLayout библиотеки дизайна Android.Но не удалось настроить цвет подчеркивания EditText внутри TextinputLayout.Пожалуйста, помогите.

Я попробовал вот это как изменить цвет текста TextinputLayout, подчеркивания android и этих (Material) Цвет подчеркивания EditText .

Но, к сожалению,не могу заставить его работать.

Это моя последняя попытка, которую я пробовал сегодня, не сработало:

<android.support.design.widget.TextInputLayout
            android:id="@+id/tilPassword"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@id/tilLogin"
            android:layout_marginBottom="@dimen/login_line_v_margin"
            app:hintTextAppearance="@style/TextAppearence.App.TextInputLayoutLight">

            <EditText
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="@string/passwordHint"
                android:inputType="textPassword" />
        </android.support.design.widget.TextInputLayout>

и стили:

<!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>

<style name="TextAppearence.App.TextInputLayoutLight" parent="@android:style/TextAppearance">
        <item name="android:textColor">@color/colorTealLight</item>
        <item name="android:textSize">18sp</item>
        <item name="colorControlNormal">#fff</item>
        <item name="colorControlActivated">@color/colorTealLight</item>
    </style>

Проблема IУ меня должно быть одно чистое решение для текста подчеркивания и текста подсказки.

Моя цель состоит в том, чтобы это то, для чего я здесь работаю, когда макет ввода текста сфокусирован и это приятно.Теперь я хочу установить его также для случаев, когда макет ввода текста НЕ ФОКУСИРОВАН.

1 Ответ

0 голосов
/ 11 мая 2019

С помощью этого и , который мне удалось заставить его работать.

Итак, в основном я заменил EditText библиотекой поддержки AppCompatEditText иустановите для него backgroundTint с цветом, подчеркивающим цвет.

И, наконец, установите textColorHint для TextInputLayout, где цвет является подсказкой цвета текста.

Примерно так:

<android.support.design.widget.TextInputLayout
            android:id="@+id/tilPassword"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@id/tilLogin"
            android:layout_marginBottom="@dimen/login_line_v_margin"
            app:hintTextAppearance="@style/TextAppearence.App.TextInputLayoutLight"
            android:textColorHint="@color/colorLoginHint">

            <android.support.v7.widget.AppCompatEditText
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="@string/passwordHint"
                android:textColor="@color/colorLoginHint"
                android:textSize="@dimen/login_font_minor"
                android:textStyle="normal"
                android:inputType="textPassword"
                android:backgroundTint="@color/colorTealLight"/>
        </android.support.design.widget.TextInputLayout>

Возможно, не таккрасиво, но работает.

РЕДАКТИРОВАТЬ

Оказалось, что эта проблема была связана с моей нарушенной иерархией res dir.У меня были какие-то древние неиспользованные значения - v21 по любой причине, и у него были некоторые стили внутри.Сегодня я провел некоторый рефакторинг и увидел его, просто удалил весь этот каталог и оставил только один стиль (те, что в значениях по умолчанию), и после этого все стили начали работать.Я предполагаю, что если бы я скопировал правильные стили в этот v21, он бы работал, но мне это вообще не нужно.

...