Как я могу скрыть строку с надписью EditText (строка подсказки с маленькими засечками на концах)?
Может быть лучший способ сделать то, что я хочу: у меня есть макет с EditText. Обычно это хорошо отображается, когда пользователь может нажать на него и начать ввод или редактирование текста.
Однако иногда я хотел бы использовать одну и ту же компоновку (упрощает другую логику) для отображения тех же данных только для чтения. Я хочу, чтобы презентация была похожей - она должна иметь одинаковую высоту и одинаковый шрифт, но не иметь подчеркивания.
В качестве меры ограничения я собираюсь реализовать это, удалив EditText и заменив TextView. Я думаю, что это даст желаемые результаты, но кажется, что это обходной путь, дорогой способ сделать что-то, что должно быть легко сделать путем изменения атрибутов.
источник
Ответы:
Вы можете установить,
EditText
чтобы иметь настраиваемый прозрачный рисунок или просто использоватьили
или программно
источник
android:background="@android:color/transparent"
android:background="@android:color/transparent"
приводит к той же проблеме потери полей ... Есть ли где-нибудь пример того, как кто-то создает такой пользовательский рисунок?Установить фон на ноль.
источник
android:background="@android:color/transparent
потому что@null
это страшно.@null
страшно?Вы можете установить
EditText
«sbackgroundTint
значение определенного цвета. Если вы установили прозрачный цвет, нижняя панель должна исчезнуть.android:backgroundTint="@color/Transparent"
<color name="Transparent">#00000000</color>
Но вы можете использовать это в
Api v21(Lollipop)
или вышеисточник
Пожалуйста, установите ваш фон редактирования текста как
android:background="#00000000"
Это будет работать.
источник
Вы можете сделать это программно, используя
setBackgroundResource
:источник
Что я сделал, так это создал Shape Drawable и установил его в качестве фона:
Примечание: я фактически использовал
@dimen
и@color
значения для firelds, но я упростил файл формы здесь для ясности.источник
Используя любое свойство:
ИЛИ
работал для меня, чтобы скрыть подчеркивание EditText.
Тем не менее, обратите внимание, что тогда это вызывает проблему пробелов с TextInputLayout, который я окружаю
EditText
источник
Вот способ скрыть это, не разрушая отступы по умолчанию:
Применение:
Обновить:
Если вы обнаружите, что всегда пропускаете ноль, вы можете кодифицировать это в методе (и тогда вы могли бы также перегружать сам EditText)
источник
Вы также должны установить minWidth, иначе курсор исчезнет, если текст будет пустым.
источник
В моем случае я использовал собственный фон для редактирования текста, поэтому установка фона на @null или установка прозрачного оттенка не было для меня решением, поэтому я сыграл небольшую хитрость, которая мне очень понравилась, я просто установил
и это делает работу довольно хорошо .. это не оптимальное решение, но это работает
источник
У меня есть что-то вроде этого, что очень очень полезно:
где generalEditText - это мой EditText, а белый цвет:
Это не удалит отступы, и ваш EditText останется как есть. Только линия внизу будет удалена. Иногда более полезно сделать это так.
Если вы используете
android:background="@null"
столько, сколько предложили, вы теряете отступы, и EditText становится меньше. По крайней мере, это был мой случай.Небольшое замечание: если вы установите фоновый ноль и попробуете Java-код, который я предоставил выше, ваше приложение будет зависать сразу после его выполнения. (потому что он получает фон, но он нулевой.) Это может быть очевидно, но я думаю, что указывать это важно.
источник
Я обнаружил самую любопытную вещь! Если вы установите его с
null
помощью привязки данных:android:background="@{null}"
Тогда не только фон удаляется, но у представления все еще есть отступ, который был вычислен от фона по умолчанию. Так что по какой-то причине установка отложенного нуля не очищает отступ от предыдущего bg ..? Заполнение вида: левый / верхний / правый 4dp, нижний 13dp (с уровня эмулятора 21).
Может не иметь одинакового конечного результата на всех уровнях API, так что будьте осторожны! Кто-то скажет мне, если вы проверите это и найдете это надежным. (Также обратите внимание, что нижний отступ выпирает из-за того подчеркивания, которое было в оригинале. Так что вы, вероятно, захотите изменить его в XML или сбросить его в коде после того, как он будет загружен в верхнюю часть ...
источник
если ваш текст для редактирования уже имеет фон, то вы можете использовать следующее.
источник
Если вы хотите, чтобы это влияло на все экземпляры EditText и любой класс, который наследовал от него, то вы должны установить в своей теме значение для атрибута editTextBackground.
Примером Drawable, который я использую, является:
Это слегка измененная версия реализации проекта по умолчанию для материала.
При применении он заставит весь ваш EditText удалить подчеркивание во всем приложении, и вам не нужно будет применять стиль к каждому из них вручную.
источник
Просто используйте это
источник
Вы также можете определить STYLE для вашего editText, чтобы вы могли перегруппировать все общие свойства. Это очень полезно, если вам нужно несколько редактировать текст, который должен иметь поведение
Поместите код в res / values / styles.xml
После этого вам просто нужно вызвать его в вашем editText
источник
Программно использовать:
editText.setBackground(null)
Из
xml
использования:android:background="@null"
источник
Или
источник
android: inputType = "textVisiblePassword | textMultiLine" android: background = "@ android: цвет / прозрачный"
... это не оптимальное решение, но оно работает.
источник
Установить фон на ноль
источник
В моем случае
editText.setBackgroundResource(R.color.transparent);
лучше.Он не удаляет отступы по умолчанию, просто под строкой.
R.color.transparent = #00000000
источник
если вы используете фон, то вы должны использовать этот тег
источник
Чтобы сохранить поля и цвет фона, используйте:
background.xml
Редактировать текст:
источник