Notice
Recent Posts
Recent Comments
Link
투케이2K
24. (AndroidStudio/android/java) editText-키보드 활성 시 ui 밀림 방지, 자동포커스 활성 방지, 엔터키 클릭 시 포커스 이동, 외부 영역 클릭 시 키보드 내림 본문
Android
24. (AndroidStudio/android/java) editText-키보드 활성 시 ui 밀림 방지, 자동포커스 활성 방지, 엔터키 클릭 시 포커스 이동, 외부 영역 클릭 시 키보드 내림
투케이2K 2021. 1. 27. 16:33/* =========================== */
[ 개발 환경 설정 ]
개발 툴 : AndroidStudio
개발 언어 : java
/* =========================== */
/* =========================== */
[소스 코드]
// ======= [AndroidManifest.xml 파일] =======
<activity
android:name=".A_Main"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan"/>
<!-- 1) android:screenOrientation="portrait" 항상 앱 화면을 세로 표시하겠다-->
<!-- 2) android:windowSoftInputMode="adjustPan" 키보드에 의해 EditText 가 가려지지 않도록 위쪽으로 이동하겠다-->
// ======= [A_Main 액티비티] =======
//TODO [전역변수 선언]
EditText num_textview;
EditText num_textview2;
//TODO [컴포넌트 매칭]
num_textview = (EditText)findViewById(R.id.num_textview);
num_textview2 = (EditText)findViewById(R.id.num_textview2);
//TODO [ 외부 바깥 레이아웃 클릭 시 키보드 내림 ]
@Override
public boolean dispatchTouchEvent(MotionEvent event){
int action = event.getAction();
switch(action){
case(MotionEvent.ACTION_DOWN):
//======창 내리는 용도======
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(num_textview.getWindowToken(), 0);
imm.hideSoftInputFromWindow(num_textview2.getWindowToken(), 0);
//======================
break;
case(MotionEvent.ACTION_MOVE):
break;
default:
break;
}
return super.dispatchTouchEvent(event);
}
// ======= [xml 레이아웃 파일] =======
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:focusable="true"
android:focusableInTouchMode="true"
android:id="@+id/parent">
<!-- [editText 사용시 자동 포커스 활성 방지]-->
<!-- android:focusable="true"-->
<!-- android:focusableInTouchMode="true"-->
<!-- android:id="@+id/parent"-->
<EditText
android:id="@+id/num_textview"
android:layout_width="match_parent"
android:layout_height="60dp"
android:text=""
android:textColor="#ffffff"
android:textStyle="bold"
android:textSize="20dp"
android:gravity="center"
android:hint=""
android:background="#444444"
android:singleLine="true"
android:nextFocusDown="@+id/num_textview2"/>
<!-- [editText 사용시 자동 포커스 활성 방지]-->
<!-- android:singleLine="true" : 한줄로만 표시하겠다-->
<!-- android:nextFocusDown="@+id/num_textview2" : 엔터키 입력 시 포커스 이동-->
<EditText
android:id="@+id/num_textview2"
android:layout_width="match_parent"
android:layout_height="60dp"
android:text=""
android:textColor="#ffffff"
android:textStyle="bold"
android:textSize="20dp"
android:gravity="center"
android:hint=""
android:background="#dddddd"
android:singleLine="true" />
</LinearLayout>
/* =========================== */
/* =========================== */
[요약 설명]
1) android:screenOrientation="portrait" 항상 앱 화면을 세로 표시하겠다
2) android:windowSoftInputMode="adjustPan" 키보드에 의해 EditText 가 가려지지 않도록 위쪽으로 이동하겠다
3) android:singleLine="true" : 한줄로만 표시하겠다
4) android:nextFocusDown="@+id/num_textview2" : 엔터키 입력 시 포커스 이동
5) 자동 포커스 활성 방지 : android:focusable="true", android:focusableInTouchMode="true"
/* =========================== */
반응형
'Android' 카테고리의 다른 글
Comments