web-dev-qa-db-de.com

Entferne den Fokusrahmen von EditText

Wie kann ich den Rand entfernen, wenn eine EditText-Ansicht eingestellt wird?

Ich brauche es, weil diese Ansicht wenig Platz auf dem Bildschirm hat, aber ohne den Rand reicht es aus. Bei der Ausführung mit dem Emulator wird ein orangefarbener Rand angezeigt, auf dem Gerät ein blauer.

81

Haben Sie versucht, den Hintergrund der EditText auf eine transparente Farbe zu setzen?

<EditText  
Android:layout_width="fill_parent" 
Android:layout_height="wrap_content" 
Android:hint="@string/hello" 
Android:background="#00000000"
/>
183
el-milligano
<EditText
            Android:id="@+id/edittext"
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"  
            Android:background="@Android:drawable/editbox_background_normal"                 

 />
37
Android

Es ist möglich. Ich würde es jedoch nicht empfehlen, da Benutzer bestimmte Metaphern gewohnt sind und Sie die allgemeine UX nicht ändern sollten.

Sie können verschiedene Ansichten auf Ihre Ansichten anwenden. In Ihrem Fall klingt es so, als wollten Sie ein EditText View-Element, das wie ein TextView-Element aussieht. In diesem Fall müssen Sie abhängig vom Status des View-Elements andere Hintergründe für den EditText angeben.

In der gewünschten layout.xml weisen Sie Ihrem EditText einen Hintergrund zu:

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

Dann erstellen Sie die custom.xml in Ihrem Drawable-Ordner und fügen Folgendes hinzu:

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

Dies sind die möglichen Zustände Ihres EditText View-Elements. Normalerweise können Sie mit @Android:drawable/textfield_default direkt auf Android-Plattform-Drawables zugreifen. In diesem Fall sind die Textfeld-Drawables jedoch privat, sodass Sie sie in Ihren eigenen Draw-Ordner kopieren müssen. Die ursprünglichen Ressourcen finden Sie in Ihrem SDK-Installationsordner unter Android_HOME\platforms\Android-(API LEVEL)\data\res\drawable-(*dpi)\.

Wenn Sie fertig sind, erhalten Sie einen EditText, der wie eine TextView aussieht, jedoch ohne diese Ränder. Diese orange Umrandungen, die Sie im Emulator gesehen haben, sind die Standard-Drawables von Android. Die blauen sind herstellerspezifisch (möglicherweise Samsung).

Ich hoffe, das hat geholfen und hat nicht viel verwirrt.

12
MarioB.

Dies ist die schnellste Lösung:

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

 />
5
Federico Ponzi

Sie können die Hintergrundfarbe transparent halten, um den Fokus des EditText-Rahmens zu entfernen.

Methode 1

<EditText 
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:background="#00000000"
/>
0
Rajneesh Shukla