Как удалить границу с помощью при редактировании вида EditText?
Мне нужно, чтобы у этого представления было мало места на экране, но без рамки это достаточно. При работе на эмуляторе появляется оранжевая рамка, на устройстве - синяя.
Как удалить границу с помощью при редактировании вида EditText?
Мне нужно, чтобы у этого представления было мало места на экране, но без рамки это достаточно. При работе на эмуляторе появляется оранжевая рамка, на устройстве - синяя.
Пробовали ли вы установить фон EditText
на прозрачный цвет?
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/hello"
android:background="#00000000"
/>
<EditText
android:id="@+id/edittext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:drawable/editbox_background_normal"
/>
Это возможно. Однако я бы не рекомендовал его, потому что пользователи привыкли к определенным метафорам, и вы не должны изменять общий 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 View. Обычно вы можете получить доступ к выноскам платформы Android напрямую, используя @android:drawable/textfield_default
, но в этом случае drawables текстового поля являются частными, поэтому вы должны скопировать их в свою собственную папку. Исходные ресурсы можно найти в папке установки 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"
/>