Удалить границу фокусировки EditText

Как удалить границу с помощью при редактировании вида EditText?

Мне нужно, чтобы у этого представления было мало места на экране, но без рамки это достаточно. При работе на эмуляторе появляется оранжевая рамка, на устройстве - синяя.

Ответ 1

Пробовали ли вы установить фон EditText на прозрачный цвет?

<EditText  
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:hint="@string/hello" 
android:background="#00000000"
/>

Ответ 2

<EditText
            android:id="@+id/edittext"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"  
            android:background="@android:drawable/editbox_background_normal"                 

 />

Ответ 3

Это возможно. Однако я бы не рекомендовал его, потому что пользователи привыкли к определенным метафорам, и вы не должны изменять общий 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).

Надеюсь, что это помогло и не слишком путало.

Ответ 4

Это самое быстрое решение:

<EditText
            android:id="@+id/edittext"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"  
            android:background="#00000000"                 

 />