Изменение цвета фона метки TextInputLayout TextView - PullRequest
0 голосов
/ 06 мая 2019

Поэтому я пытаюсь изменить цвет фона надписи на TextInputLayout / EditText. Большинство других вопросов, похоже, относятся к цвету текста, но функциональность метки по умолчанию, которую я наблюдал, заключается в том, что фон метки в стиле «OutlinedBox» соответствует цвету фона макета над ним. в иерархии . https://imgur.com/mc5JB9b https://imgur.com/pjST45F (извините, у меня недостаточно репутации для публикации изображений)

Как видите, в отл. 1, макет над TextInputLayout имеет сероватый цвет, поэтому метка TextView background также становится сероватой. В отл. 2, макет над TextInputLayout имеет белый цвет, поэтому текст метки background также становится белым. Так как это меняется без какого-либо ввода от меня (он не использует цвет, такой как «colorAccent», который применяется по всей доске, а вместо этого использует другой цвет, основанный на цвет фона макета). Я пытаюсь выяснить, существует ли атрибут цвета, который я могу поддерживать / редактировать, предпочтительно с помощью стиля, который позволит мне выбрать этот цвет вместо того, чтобы использовать его по умолчанию, независимо от того, какой макет находится над ним в иерархии?

Я пытался установить различные цвета в стиле, чтобы попытаться переопределить поведение по умолчанию, но не нашел такой, который делает это.

Вот TextInputLayout / EditText для суммы.

     <com.google.android.material.textfield.TextInputLayout
                android:id="@+id/tilAmount"
                style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense"
                android:layout_width="0dp"
                android:layout_height="55dp"
                android:layout_marginRight="@dimen/margin_between_boxes"
                android:layout_weight="1"
                android:hint="@string/et_amount"
                app:boxBackgroundColor="@color/white"
                app:boxStrokeColor="@color/editText_background"
                app:boxStrokeWidth="3dp"
                app:hintTextAppearance="@style/TextLabel">


                <com.google.android.material.textfield.TextInputEditText
                    android:id="@+id/etAmount"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:fontFamily="@font/neue_haas_grotesk_display_regular"
                    android:inputType="number"
                    android:maxLength="7"
                    android:paddingLeft="13dp"
                    android:textAlignment="viewStart"
                    android:textColorHint="@android:color/black"
                    android:textSize="14sp"
                    android:layout_gravity="start" />
            </com.google.android.material.textfield.TextInputLayout>

А вот стиль, используемый для подсказкиTextAppearance

      <style name="TextLabel" parent="TextAppearance.AppCompat">
    <!-- Hint color and label color in FALSE state -->
    <item name="android:textColorHint">@color/label_text</item>
    <item name="android:textColor">@color/label_text</item>
    <item name="android:textSize">12sp</item>
    <!-- Label color in TRUE state and bar color FALSE and TRUE State -->
    <item name="colorAccent">@android:color/black</item>
    <item name="colorControlNormal">@color/label_text</item>
    <item name="colorControlActivated">@color/label_text</item>
    <item name="android:colorControlHighlight">@color/label_text</item>
    <item name="android:textColorPrimary">@color/label_text</item>
    <item name="android:textColorSecondary">@color/label_text</item>
</style>

Я ожидаю, что смогу редактировать цвет фона надписи TextView по своему выбору.

...