안드로이드에서는 키보드가 올라가고 내려갈때 콜백 이벤트 필요한 순간이 있을때
이 코드를 사용하시면 됩니다.
우선 구글링으로 찾은 이곳에서 SoftKeyboard 클래스의 용도를 확인합니다.
https://felhr85.net/2014/05/04/catch-soft-keyboard-showhidden-events-in-android/
안에 들어가 보시면 It is available here. 이라고 쓰인 곳을 누르면 SoftKeyboard.java를 다운받을 수 있도록 안내해 줍니다.
SoftKeyboard.java를 다운받고 프로젝트에 넣고 아래 소스를 넣어 줍니다.
TestAct.java
package com.example.testline;
import android.app.Activity;
import android.app.Service;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.view.inputmethod.InputMethodManager;
import android.widget.LinearLayout;
public class TestAct extends Activity {
SoftKeyboard mSoftKeyboard;
LinearLayout mLlEdit;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mLlEdit = (LinearLayout) findViewById(R.id.ll_edit);
InputMethodManager controlManager = (InputMethodManager) getSystemService(Service.INPUT_METHOD_SERVICE);
mSoftKeyboard = new SoftKeyboard(mLlEdit, controlManager);
mSoftKeyboard.setSoftKeyboardCallback(new SoftKeyboard.SoftKeyboardChanged() {
@Override
public void onSoftKeyboardHide() {
new Handler(Looper.getMainLooper())
.post(new Runnable() {
@Override
public void run() {
// 키보드 내려왔을때
}
});
}
@Override
public void onSoftKeyboardShow() {
new Handler(Looper.getMainLooper())
.post(new Runnable() {
@Override
public void run() {
// 키보드 올라왔을때
}
});
}
});
}
@Override
public void onDestroy() {
super.onDestroy();
mSoftKeyboard.unRegisterSoftKeyboardCallback();
}
}
activity_main.xml 파일
<LinearLayout
android:id="@+id/ll_edit"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:focusable="true"
android:focusableInTouchMode="true"
android:orientation="horizontal" >
<TextView
android:layout_width="80dp"
android:layout_height="41.33dp"
android:gravity="center_vertical"
android:text="@string/visit_floor"
android:textColor="@android:color/black"
android:textSize="16.67sp" />
<EditText
android:id="@+id/EditText"
android:layout_width="fill_parent"
android:layout_height="41.33dp"
android:layout_gravity="center"
android:gravity="center"
android:inputType="textAutoComplete"
android:textSize="16.67sp" />
</LinearLayout>
'Android' 카테고리의 다른 글
안드로이드 툴바 메뉴 보이지 않도록 설정 (0) | 2017.03.06 |
---|---|
안드로이드 WheelView or StringPicker (0) | 2017.03.03 |
커스텀 UI 스피너 만들기 (0) | 2017.02.17 |
안드로이드 액티비티 애니메이션 (0) | 2016.11.14 |
RecyclerView 만들기 (0) | 2016.11.14 |