본문 바로가기
Android 개발/android :: Tip

[안드로이드 EditText] 자동 포커스 막기 (켜자마자 키보드 올라오는 현상 방지)

by 독학하는 1인 개발자 2020. 8. 14.

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으로 주어진다.

 

따라서 키보드가 자동으로 올라오는 것을 막을 수 있다.

 

 

댓글