Я пытаюсь перейти с компонентов материала 1.0.0 на 1.1.0-alpha07, чтобы иметь возможность использовать стиль ExposedDropdown.
Тем не менее, это портит все мои TextInputEditText, поскольку они не должны быть ни обведены, ни заполнены.
Я пытался установить для фона TextInputEditText коробки прозрачный цвет, но это в конечном итоге сделало их заливку полностью белой, вместо того, чтобы сделать их прозрачными и обнажить то, что находится за ними (это фирменный цвет с градиентом, который охватывает больше, чем поле редактирования, и вот почему я не могу просто установить его цвет на цвет фона, так как он просто не будет соответствовать градиенту).
Итак, вопрос: Есть ли способ сохранить старомодные незаполненные EditTexts в 1.1.0+ (при этом используя их внутри TextInputLayout)?
Примечание: Я должен сказать, что исключение простого варианта с незаполненными полями редактирования (как это было раньше) является огромной ошибкой, поскольку это почти полностью отключает безболезненную миграцию на 1.1.0, теперь вам в основном нужно заставить изменить свой дизайн. первый.





Установка TextInputEditText фона на прозрачность сработала для меня.
Родителем моей темы является Theme.MaterialComponents.DayNight.DarkActionBar.
Другая возможность — использовать ThemeOverlay вместо editTextStyle:
<style name = "Widget.YourTheme.TextInputLayout" parent = "Widget.MaterialComponents.TextInputLayout.FilledBox>
<item name = "materialThemeOverlay">@style/ThemeOverlay.YourTheme.TextInputEditText</item>
</style>
<style name = "ThemeOverlay.YourTheme.TextInputEditText parent = "ThemeOverlay.MaterialComponents.TextInputEditText.FilledBox">
<item name = "editTextStyle">@style/Widget.YourTheme.TextInputEditText item>
</style>
<style name = "Widget.YourTheme.TextInputEditText parent = "Widget.MaterialComponents.TextInputEditText.FilledBox">
<item name = "android:background">@android:color/transparent</item>
</style>
<com.google.android.material.textfield.TextInputLayout
style = "@style/Widget.YourTheme.TextInputLayout"
...
<TextInputEditText>
...
</TextInputEditText>
</com.google.android.material.textfield.TextInputLayout>
Настройка boxBackgroundMode = "none" работает, но она также удаляет нижнюю строку EditText's, а это не то, что мне нужно для моего варианта использования.
Мне удалось найти довольно простой ответ на проблему.
Решение состоит в том, чтобы использовать app:boxBackgroundMode = "none" со стилем заполненного поля.
Вы также можете поместить стиль для всего приложения для макетов ввода текста (также применяя вышеупомянутый атрибут), используя атрибут textInputStyle в теме вашего приложения и предоставив желаемый стиль.
В качестве примечания, это просто указывает на катастрофическую нехватку легкодоступной документации и руководств, от которых страдает эта библиотека.
строка ниже тоже исчезает с решением, хотя
Я не пробовал ваше решение, но я нашел гораздо более простое.