본문 바로가기
프로그래밍/Android

android EditText 커서 색상, 위치 밑줄 설정에 대한 이야기

by Mr-후 2018. 11. 23.
반응형


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로 코딩을 하면서 해야하는 번거로움이 있지만 나름 재미있다.





반응형