Поэтому я пытаюсь изменить цвет фона надписи на 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 по своему выбору.