EditTextのフォーカスボーダーを削除します


83

EditTextビューにフォーカスするときに表示される境界線を削除するにはどうすればよいですか?

このビューには画面内のスペースがほとんどないため、必要ですが、境界線がなければ十分です。エミュレータで実行するとオレンジ色の境界線が表示され、デバイスでは青色の境界線が表示されます。


それが可能かどうかはわかりません...カスタムボタンはいつでも少し小さくすることができます。
gnclmorais 2011年

回答:


188

の背景をEditText透明色に設定してみましたか?

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

21
"@android:color/transparent"もう少し自明です。
アレクサンダーマラホフ2014

7
"@null"オプションにすることもできます
Mangesh 2014年

3
この答えは正しくありません。フォーカスの境界線だけでなく、フォーカスされていないEditTextの背景も削除されるからです。
JensJensen 2015年

@Michaelはい、16進数の0と00000は同じなので。そのまだゼロ。
ブリルパピン2016

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

 />

12

可能です。ただし、ユーザーは特定のメタファーに慣れており、一般的なUXを変更するべきではないため、お勧めしません。

ビューにさまざまなスタイルを適用できます。あなたの場合、TextView要素のように見えるEditTextView要素が必要なようです。この場合、View要素の状態に応じて、EditTextに他の背景を指定する必要があります。

目的のlayout.xmlで、EditTextに背景を割り当てます。

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

次に、drawableフォルダーに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>

これらは、EditTextView要素の可能な状態です。通常、を使用してAndroidプラットフォームのドローアブルに直接アクセスできます@android:drawable/textfield_defaultが、この場合、テキストフィールドのドローアブルはプライベートであるため、独自のドローアブルフォルダにコピーする必要があります。元のリソースは、SDKインストールフォルダーのにありますANDROID_HOME\platforms\android-(API LEVEL)\data\res\drawable-(*dpi)\

完了すると、TextViewのように見えますが、これらの境界線がまったくないEditTextが作成されます。エミュレーターで見たオレン​​ジ色の境界線は、デフォルトのAndroidドローアブルです。青いものはベンダー固有です(おそらくSamsung)。

それが助けになり、それほど混乱しなかったことを願っています。


すぐにテストします。そしてそれはギャラクシータブのためです。
Marcos Vasconcelos 2011年

まあ..これはうまくいくことができます。しかし、私はそれらすべての背景を描きたくありません。デフォルトの境界線を削除する必要がありますが、これは不可能ですか?
マルコスバスコンセロス2011年

私が投稿した例は、元の実装から派生したものです。EditTextの境界線は個別に描画されません。これは、View要素の現在の状態に応じて設定される完全な背景画像です。内部的には、Androidプラットフォームは毎回完全な背景画像を設定します。SDKインストールの9つのパッチイメージは、ANDROID_HOME \ platform \ android-(API LEVEL)\ data \ res \ drawable-(* dpi)\にあります。
MarioB。

6

これが最速のソリューションです。

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

 />

0

背景色を透明のままにして、フォーカスのあるEditTextの境界線を削除できます。

方法1

<EditText 
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#00000000"
/>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.