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"좀 더 자명합니다.
Alexander Malakhov

7
"@null"옵션이 될 수도 있습니다
Mangesh

3
이 대답은 초점 테두리뿐만 아니라 초점이 맞지 않는 EditText 배경도 제거하기 때문에 정확하지 않습니다.
JensJensen

@Michael 예, 16 진수 0과 00000이 동일하기 때문입니다. 여전히 0입니다.
Brill Pappin 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 요소처럼 보이는 EditText View 요소를 원하는 것처럼 들립니다. 이 경우 View 요소의 상태에 따라 EditText에 다른 배경을 지정해야합니다.

원하는 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)\.

완료되면 TextView처럼 보이지만 테두리가 완전히없는 EditText로 끝납니다. 에뮬레이터에서 본 주황색 테두리가 기본 Android 드로어 블입니다. 파란색은 공급 업체별로 다릅니다 (삼성 일 수도 있음).

도움이되었고 그다지 혼란스럽지 않았기를 바랍니다.


곧 테스트하겠습니다. 그리고 갤럭시 탭용입니다.
Marcos Vasconcelos 2011 년

음 ..이게 효과가있을 수 있습니다. 하지만 그 모든 배경을 그리고 싶지는 않습니다. 기본 테두리를 제거해야합니다. 불가능합니까?
Marcos Vasconcelos 2011 년

내가 게시 한 예제는 원래 구현에서 파생 된 것입니다. EditText 테두리는 개별적으로 그려지지 않습니다. View 요소의 현재 상태에 따라 설정되는 완전한 배경 이미지입니다. 내부적으로 안드로이드 플랫폼은 매번 완전한 배경 이미지를 설정합니다. ANDROID_HOME \ platforms \ android- (API LEVEL) \ data \ res \ drawable-(* dpi) \에서 SDK 설치의 나인 패치 이미지를 볼 수 있습니다.
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.