Usuń obramowanie zaznaczenia EditText


83

Jak mogę usunąć obramowanie z pojawia się przy ustawianiu widoku EditText?

Potrzebuję tego, bo ten widok ma mało miejsca na ekranie, ale bez ramki wystarczy. Podczas pracy na emulatorze pojawia się pomarańczowa ramka, a na urządzeniu niebieska.


Nie wiem, czy to możliwe ... Zawsze możesz zrobić własne przyciski, trochę mniejsze.
— gnclmorais

Odpowiedzi:


188

Czy próbowałeś ustawić EditTextprzezroczysty kolor tła?

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

21
"@android:color/transparent"jest nieco bardziej zrozumiała.
— Alexander Malakhov

7
"@null"może być również opcja
— Mangesh

3
ta odpowiedź nie jest poprawna, ponieważ nie tylko usuwa obramowanie fokusa, ale także nieostre tło EditText.
— JensJensen

@Michael tak, ponieważ szesnastkowe 0 i 00000 to to samo. jego nadal zero.
— Brill Pappin

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

 />

12

To jest możliwe. Jednak nie polecałbym tego, ponieważ użytkownicy są przyzwyczajeni do pewnych metafor i nie powinieneś zmieniać ogólnego UX.

Możesz zastosować różne style do swoich widoków. W twoim przypadku brzmi to tak, jakbyś chciał elementu EditText View, który wygląda jak element TextView. W takim przypadku należałoby określić inne tła dla EditText w zależności od stanu elementu View.

W wybranym pliku layout.xml przypisujesz tło do tekstu edycji:

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

Następnie utwórz plik custom.xml w folderze do rysowania i dodaj następujące elementy:

<?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>

To są możliwe stany elementu widoku EditText. Zwykle możesz uzyskać dostęp do rysunków platformy Android bezpośrednio za pomocą @android:drawable/textfield_default, ale w tym przypadku rysunki Textfield są prywatne, więc musisz je skopiować do własnego folderu do rysowania. Oryginalne zasoby można znaleźć w folderze instalacyjnym zestawu SDK pod adresem ANDROID_HOME\platforms\android-(API LEVEL)\data\res\drawable-(*dpi)\.

Gdy skończysz, otrzymasz EditText, który wygląda jak TextView, ale całkowicie bez tych granic. Te pomarańczowe obramowania, które widziałeś w emulatorze, są domyślnymi rysunkami Androida. Niebieskie są specyficzne dla producenta (prawdopodobnie Samsung).

Mam nadzieję, że to pomogło i nie zmyliło tak bardzo.


Niedługo to przetestuję. I to dla Galaxy Tab.
— Marcos Vasconcelos,

cóż… to może zadziałać. Ale nie chcę rysować wszystkich tych środowisk. Muszę po prostu usunąć obramowanie domyślnego, to nie jest możliwe?
— Marcos Vasconcelos,

Przykład, który zamieściłem, pochodzi z oryginalnej implementacji. Ramka EditText nie jest rysowana indywidualnie. Jest to pełny obraz tła, który jest ustawiany w zależności od aktualnego stanu elementu View. Platforma Android zawsze ustawia pełny obraz tła. Obrazy dziewięciu poprawek można zobaczyć w instalacji SDK w ANDROID_HOME \ platform \ android- (POZIOM API) \ data \ res \ drawable - (* dpi) \.
— MarioB.

6

To najszybsze rozwiązanie:

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

 />

0

Możesz zachować przezroczysty kolor tła, aby usunąć ramkę EditText na fokusie.

Metoda 1

<EditText 
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#00000000"
/>
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.