TextInputLayout, TextInputEditText에 색 지정하기
2020. 2. 2. 11:57 안드로이드 개발
Material Design 2.0에서는 과거의 EditText보다는 TextInputLayout과 그 하부에 TextInputEditText를 권장하고 있다. 따로 해당 EditText에 설명을 적을 필요 없이 hint에 적은 게 위로 올라가기도 하고 EditText 영역이 딱 약간의 음영이 지정되기도 하니까 보기에도 좋다. 그런데 아직 쓰는 사람이 많지 않아서인지 속성 색 지정하는 법을 잘 찾을 수 없어 겨우겨우 찾은 끝에 깔끔하게 정리해두기로 했다.
별도의 표기가 없으면 TextInputLayout의 속성을 지칭하고 있다.
터치 전, 사용하지 않을 때의 속성
터치 후, 텍스트 입력을 하고 있는 상태일 때
터치 후, 텍스트 입력 중 오류를 발생시켰을 때 (setError("에러 메시지"))
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/et_name"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:hintTextColor="@color/color_ienlab_pink"
app:boxStrokeColor="@color/color_ienlab_skyblue"
android:textColorHint="@color/color_ienlab_purple"
app:boxBackgroundColor="@color/color_ienlab_blue"
app:errorTextColor="@color/teal"
app:boxStrokeErrorColor="@color/color_rss">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textCursorDrawable="@drawable/rss_et_cursor"
android:hint="@string/nickname" />
</com.google.android.material.textfield.TextInputLayout>
보기 쉽게 색으로 구별해 두었다. 이 정도 속성이면 쓰는데 큰 불편함이 없을 것 같다. 주의할 점은 android:textCursorDrawable은 컬러 코드를 받는 게 아니고 Drawable을 요구하기 때문에, 별도의 Drawable xml 파일이 필요하다. 아래에 그 코드를 첨부해 두었다.
<!-- TextInputEditText Cursor Drawable -->
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/navigationBarColorGreen" />
<size android:width="1.5dp" />
</shape>
'안드로이드 개발' 카테고리의 다른 글
귀여운 개발자들의 모습 (0) | 2020.04.07 |
---|---|
[토이플젝] 차량용 자동 DMB 런처 (0) | 2020.04.06 |
안드로이드 데브 서밋 2019 Extended Seoul@GoogleForStartups (0) | 2019.12.21 |
안드로이드 스튜디오 3.5 스플래시 (0) | 2019.08.21 |
인앱 결제 구현 성공 (0) | 2019.08.05 |