Удалить фокусировочную границу EditText - PullRequest
82 голосов
/ 29 марта 2011

Как убрать границу с появляется при фокусировке представления EditText?

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

Ответы [ 5 ]

185 голосов
/ 24 августа 2011

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

<EditText  
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:hint="@string/hello" 
android:background="#00000000"
/>
39 голосов
/ 13 декабря 2013
<EditText
            android:id="@+id/edittext"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"  
            android:background="@android:drawable/editbox_background_normal"                 

 />
12 голосов
/ 30 марта 2011

Это возможно. Однако я не рекомендовал бы это, потому что пользователи привыкли к определенным метафорам, и вы не должны менять общий 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, но в этом случае текстовые поля для рисования являются частными, поэтому вы должны скопировать их в свою собственную папку для рисования. Исходные ресурсы можно найти в папке установки SDK по адресу ANDROID_HOME\platforms\android-(API LEVEL)\data\res\drawable-(*dpi)\.

Как только вы закончите, вы получите EditText, который выглядит как TextView, но полностью без этих границ. Те оранжевые рамки, которые вы видели в эмуляторе, являются стандартными рисунками для Android. Синие - в зависимости от поставщика (возможно, Samsung).

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

5 голосов
/ 05 января 2014

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

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

 />
0 голосов
/ 08 ноября 2018

Вы можете сохранить цвет фона прозрачным, чтобы убрать рамку EditText с фокуса.

Метод 1

<EditText 
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#00000000"
/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...