-
[Android] Keyboard doesn't show up automatically when enter to activity in Android PieAndroid 2019. 3. 12. 11:15
이 문제는 사실 별거 아닌 것 같은 문제임에도 불구하고.
검색화면 및 로그인화면에서 바로 키보드가 뜨던 이전 버전과 달리,
키보드가 뜨지 않자 넘나 휑해서 이게 뭐야? 하고 찾아본 내용임.
Target SDK 28 Upgrade 후, Pie(API 28) 단말에서만
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
가 동작을 하지 않았다.
그래서 찾아낸 해결 방법은 아래와 같다.
1. Downgrade TargetSDK to 27 (... wtf?)
2. Ask to Google. But All Answers are not working for me.
(참고 : https://stackoverflow.com/questions/51949487/keyboard-doesnt-show-up-when-enter-to-activity-in-android-pie-api-28)2-1. AndroidManifest.xml - hardwardAccelerated 추가
<application
...
android:hardwareAccelerated="true"
2-2.. AndroidManifest.xml - windowSoftInputMode 추가
<activity
android:name=".view.activity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateVisible" />2-3. 해당 activity가 create될 때 해당 뷰에 requestFocus 추가
editText.requestFocus();
2-4. 해당 activity의 layout.xml에서 뷰에 <requestFocus /> 추가
<EditText
android:id="@+id/etId"
... >
<requestFocus />
</EditText>결국 나의 문제를 해결해 준 방법은 이것
3. 구글이 버그 수정 업데이트를 해 주기 전까지 꼼수를 써 둔다.
그냥 Activity의 onCreate 부분에서, 키보드를 쪼금 느리게 띄운다.
AppContext.get().getHandler().postDelayed(new Runnable() { @Override public void run() { editText.requestFocus(); InputMethodManager imm = (InputMethodManager) context.getSystemService(Service.INPUT_METHOD_SERVICE); imm.showSoftInput(editText, 0); } }, 200);
힘든 하루간의 삽질기억.
'Android' 카테고리의 다른 글