Android 개발 Tip.
- EditText 자동 포커스 막는 방법
켜자마자 키보드 올라오는 현상 방지
focusable
focusableInTouchMode
EditText는 기본적으로 자동으로 포커스(Focus)가 주어진다.
그래서 EditText가 있는 창이 열리면 키보드가 자동으로 올라오게 된다.
애초에 키보드가 자동으로 올라오게 하고 싶으면 그냥 원래 그대로 사용하면 되는데
경우에 따라 자동 포커스를 막아야 할 때가 있다.
이 현상을 막으려면
xml 코드에 딱 2줄만 추가해주면 된다.
android:focusable="true"
android:focusableInTouchMode="true"
다른 방법은 없을까 더 검색해 볼 필요는 없다.
많이 찾아봤는데 이게 최선이었다.
어디에 추가하느냐?
일반적으로는 상위 레이아웃에 추가한다.
아니면 다른 데 원하는 곳에 추가해도 된다.
예시
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:focusable="true"
android:focusableInTouchMode="true">
<EditText
android:id="@+id/et01"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
|
cs |
LinearLayout을 보면
마지막 부분에 두 줄이 더 추가되었다.
android:focusable="true"
android:focusableInTouchMode="true"
이 속성으로 인해 해당 화면이 나타날 때
포커스가 EditText가 아닌 LinearLayout으로 주어진다.
따라서 키보드가 자동으로 올라오는 것을 막을 수 있다.
'Android 개발 > android :: Tip' 카테고리의 다른 글
[안드로이드 Gradle] 최신 Library dependencies 추가를 직접 implementation 하는 방법 (0) | 2020.12.11 |
---|---|
[안드로이드 Animation] startAnimation(), setAnimation() 차이 구분 (1) | 2020.12.06 |
[안드로이드 String] 특정 문자 기준으로 자르기 - substring, indexOf (0) | 2020.11.11 |
[안드로이드 ListView, ScrollView] 스크롤바 사이즈 및 색상 바꾸기 (0) | 2020.11.10 |
[안드로이드 Activity] 새 액티비티 추가 하기 - 정석적인 방법 (0) | 2020.08.03 |
[안드로이드 Dialog] AlertDialog 폰트 자체적으로 설정하는 방법 (0) | 2020.08.02 |
[안드로이드 스튜디오] 시작화면 설정하기 (프로젝트 선택 or 이전 프로젝트 자동 실행) (0) | 2020.08.01 |
[안드로이드 Activity] startActivityForResult 사용법 및 startActivity와 차이점 (0) | 2020.05.28 |
댓글