Как я могу удалить границу со значком при фокусировке в режиме EditText?
Мне это нужно, потому что в этом представлении мало места на экране, но без рамки этого достаточно. При работе в эмуляторе появляется оранжевая рамка, на устройстве - синяя.
Как я могу удалить границу со значком при фокусировке в режиме EditText?
Мне это нужно, потому что в этом представлении мало места на экране, но без рамки этого достаточно. При работе в эмуляторе появляется оранжевая рамка, на устройстве - синяя.
Ответы:
Вы пробовали установить EditText
прозрачный цвет фона?
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/hello"
android:background="#00000000"
/>
"@android:color/transparent"
немного более самоочевидно.
"@null"
тоже может быть вариант
Возможно. Однако я бы не рекомендовал это, потому что пользователи привыкли к определенным метафорам, и вам не следует менять общий UX.
Вы можете применять к своим представлениям разные стили. В вашем случае похоже, что вам нужен элемент EditText View, который выглядит как элемент TextView. В этом случае вам нужно будет указать другие фоны для EditText в зависимости от состояния элемента View.
В желаемом файле layout.xml вы назначаете фон своему EditText:
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/hello" android:background="@drawable/custom"
/>
Затем вы создаете custom.xml в своей папке с возможностью рисования и добавляете следующее:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_window_focused="false" android:state_enabled="true"
android:drawable="@drawable/textfield_default" />
<item android:state_window_focused="false" android:state_enabled="false"
android:drawable="@drawable/textfield_disabled" />
<item android:state_pressed="true" android:drawable="@drawable/textfield_default" />
<item android:state_enabled="true" android:state_focused="true" android:drawable="@drawable/textfield_default" />
<item android:state_enabled="true" android:drawable="@drawable/textfield_default" />
<item android:state_focused="true" android:drawable="@drawable/textfield_disabled" />
<item android:drawable="@drawable/textfield_disabled" />
</selector>
Это возможные состояния вашего элемента представления EditText. Обычно вы можете получить доступ к чертежам платформы Android напрямую, используя @android:drawable/textfield_default
, но в этом случае чертежи текстового поля являются частными, поэтому вам нужно скопировать их в свою собственную папку для рисования. Исходные ресурсы можно найти в папке установки SDK по адресу ANDROID_HOME\platforms\android-(API LEVEL)\data\res\drawable-(*dpi)\
.
Как только вы закончите, вы получите EditText, который выглядит как TextView, но полностью без этих границ. Те оранжевые границы, которые вы видели в эмуляторе, являются чертежами Android по умолчанию. Синие - это конкретные производители (возможно, Samsung).
Надеюсь, что это помогло и не сильно смущало.
Это самое быстрое решение:
<EditText
android:id="@+id/edittext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#00000000"
/>
Вы можете оставить цвет фона прозрачным, чтобы убрать границу EditText в фокусе.
Способ 1
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#00000000"
/>