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.
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.
Odpowiedzi:
Czy próbowałeś ustawić EditText
przezroczysty kolor tła?
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/hello"
android:background="#00000000"
/>
"@android:color/transparent"
jest nieco bardziej zrozumiała.
"@null"
może być również opcja
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.
To najszybsze rozwiązanie:
<EditText
android:id="@+id/edittext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#00000000"
/>
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"
/>