android EditText 커서 색상, 위치 밑줄 설정에 대한 이야기
아직도 아이폰과 헷갈려하며 하나 하나 찾아가면서 UI작업을 하는 안드로이드. 어제는 EditText란 녀석에 대해 심화(?) 학습을 한 셈이었다. 뚱딴지 같이 밑줄이 나오질 않나 자동으로 포커싱이 가 있질 않나 생각보다 높이가 높지를 않나... 살짝 맨붕이었는데 하나 하나 찾아가면서 해결하다 보니 재미가 솔솔하다.
EditText는 여러 속성이 있는데 먼저 Activity가 올라올 때 커서가 위치 하지 않도록 조정하는 방법인데 이건 EditText의 설정이라기 보다 EditText를 포함한 상위 레이아웃박스에 focusableInTouchMode 의 속성을 true 설정해서 EditText가 포커스를 잃도록 하는 방법이 있다.
EditText를 포함하고 있는 <LinearLayout의 속성을 설정하면 해결된다.
<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp" android:background="#eee">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_gravity="center_vertical"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:background="@drawable/round_couner"
android:orientation="horizontal"
android:focusableInTouchMode="true">
<EditText
android:layout_width="match_parent"
android:layout_height="34dp"
android:lines="1"
android:inputType="text"
android:hint="검색"
android:textSize="16dp"
android:background="@android:color/transparent"
android:layout_gravity="center_vertical"
android:layout_marginLeft="3dp"
android:layout_marginRight="3dp"
android:textColor="@color/common_google_signin_btn_text_dark_focused"
android:textCursorDrawable="@drawable/edit_text_cursor_color"
/>
</LinearLayout>
그 다음으로 기본 EditText의 높이가 생각보다 높다. 그건 아마 기본적으로 백그라운드에 뭔가가 들어가 있어서 그런 것 같다. 그건 EditText의 background를 설정해주는 것으로 해결이 가능하다.
android:background="@android:color/transparent"
또는
android:background="@null" 을 적용해서 해결할 수 있다.
EditText의 placeholder는 hint속성을 이용하면 되고,
커서의 색상을 바꾸고 싶을 때는 @drawable을 이용해서 textCursorDrawable을 설정해주면 된다.
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#FF493334" />
<size android:width="1dp" />
</shape>
solid android:color=""로 설정한 값이 깜박이는 커서의 색상이 된다.
2018/11/23 - [Programming/Android] - 안드로이드 둥근 모서리 레이아웃 만드는 방법(@drawable)
알쏭달쏭 재미있는 안드로이드 UI작업. xml로 코딩을 하면서 해야하는 번거로움이 있지만 나름 재미있다.
'프로그래밍 > Android' 카테고리의 다른 글
안드로이드 런타임 퍼미션 요청 (READ_CONTACTS) (0) | 2018.12.06 |
---|---|
Android 주소록 가져오기 (연락처 및 프로필 사진) (0) | 2018.11.30 |
안드로이드 둥근 모서리 레이아웃 만드는 방법(@drawable) (0) | 2018.11.23 |
android res/style을 이용한 fullscreen 적용 (0) | 2018.11.22 |
ImageView 웹서버의 이미지 적용 방법(간단) (0) | 2018.11.21 |