Как убрать подчеркивание в TextInputLayout в Android Material Design?

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

Как убрать это подчеркивание?

XML:

<com.google.android.material.textfield.TextInputLayout
            android:layout_width = "match_parent"
            android:layout_height = "wrap_content"
            android:padding = "@dimen/_10sdp"
            style = "?colorOnPrimary"
            app:boxCornerRadiusTopEnd = "@dimen/_5sdp"
            app:boxCornerRadiusTopStart = "@dimen/_5sdp"
            app:startIconContentDescription = "Heading">

            <com.google.android.material.textfield.TextInputEditText
                android:id = "@+id/input_heading"
                android:layout_width = "match_parent"
                android:layout_height = "wrap_content"
                android:fontFamily = "@font/ubuntubold"
                android:hint = "Heading"
                android:inputType = "text" />

</com.google.android.material.textfield.TextInputLayout>

Вы пробовали это? Я только что проверил и android:background = "@null" работает для меня. Вы можете добавить список ответов, которые вы пробовали, чтобы нам не нужно было спрашивать, что вы пробовали.

MaLa 26.12.2020 17:05

Да, я сделал. Он просто полностью удалил фон. я имею в виду серый фон

michaelgrigoryan25 26.12.2020 17:07

Вы добавили android:background = "@null" к <com.google.android.material.textfield.TextInputEditText?

MaLa 26.12.2020 17:08

Я попытался добавить как для контейнера, так и для edittext. То же самое произошло

michaelgrigoryan25 26.12.2020 17:09

Добавьте xml, чтобы я мог его проверить

MaLa 26.12.2020 17:10

Сделанный. я обновил пост

michaelgrigoryan25 26.12.2020 17:11

Давайте продолжим обсуждение в чате.

MaLa 26.12.2020 17:13
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
3
7
2 510
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Как указано в руководстве по дизайну материалов, это индикатор активации TextInputLayout.

Подробнее см. Атрибуты индикатора активации.

Одним из решений является переопределение некоторых из этих атрибутов внутри вашего приложения.

Или вы можете сделать что-то вроде этого:

<com.google.android.material.textfield.TextInputLayout
            android:layout_width = "match_parent"
            android:layout_height = "wrap_content"
            android:padding = "@dimen/_10sdp"
            style = "?colorOnPrimary"
            app:boxCornerRadiusTopEnd = "@dimen/_5sdp"
            app:boxCornerRadiusTopStart = "@dimen/_5sdp"
            app:startIconContentDescription = "Heading"
            app:boxStrokeWidth = "0dp"
            app:boxStrokeWidthFocused = "0dp">

    <com.google.android.material.textfield.TextInputEditText
        android:id = "@+id/input_heading"
        android:layout_width = "match_parent"
        android:layout_height = "wrap_content"
        android:fontFamily = "@font/ubuntubold"
        android:hint = "Heading"
        android:inputType = "text" />

</com.google.android.material.textfield.TextInputLayout>

Проверьте app:boxStrokeWidth = "0dp" и app:boxStrokeWidthFocused = "0dp"

Большое спасибо! Это решило мою проблему. Кстати, можете дать ссылку на ту часть документации

michaelgrigoryan25 26.12.2020 18:32
material.io/components/text-fields/android#filled-text-field вам нужно вручную найти текст «Атрибуты индикатора активации». Якоря для этой части не нашел.
saiful103a 26.12.2020 18:34

Чтобы удалить подчеркивание, вы должны создать тему и стиль для вашего TextInputLayout.

<style name = "MyTheme" parent = "Theme.MaterialComponents.Light.NoActionBar">
    <item name = "textInputStyle">@style/Widget.SearchBarTheme.TextInputLayout</item>
</style>

<style name = "Widget.MyTheme.TextInputLayout" parent = "Widget.MaterialComponents.TextInputLayout.FilledBox">
    <item name = "boxStrokeWidth">0dp</item>
    <item name = "boxStrokeWidthFocused">0dp</item>
</style>

После этого назначьте эту тему представлению

    <com.google.android.material.textfield.TextInputLayout
    android:id = "@+id/ily"
    android:layout_width = "match_parent"
    android:layout_height = "wrap_content"
    app:hintEnabled = "false"
    android:theme = "@style/MyTheme"
    >

    <com.google.android.material.textfield.TextInputEditText
        android:id = "@+id/etx"
        android:layout_width = "match_parent"
        android:layout_height = "wrap_content"
        android:background = "@android:color/transparent"
        android:inputType = "text"
        android:hint = "Whatever you want"
        android:paddingTop = "8dp"/>

</com.google.android.material.textfield.TextInputLayout>

Другие вопросы по теме