일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- return 1
- MySQL
- centos java_home
- 안드로이드
- 웹뷰 디버깅
- 이벤트 스케쥴러
- 키보드 사라짐
- foreign_key
- sh shutdown.sh 오류
- jdk 상세버전 확인
- 자바 버전 확인
- arm-linux-androideabi
- chrome://inspect
- event scheduler
- 인덱스 여러개
- adjustNothig
- 웹뷰 원격
- 변환기
- ndk 오류
- centos 환경변수
- useGeneratedKeys
- /usr/lib/jvm
- 10진수
- centos jre_home
- 리눅스
- 광고
- centos java
- web view
- gitignore 오류
- gitignore not working
- Today
- Total
개발자가 되고 싶은 1人
안드로이드 웹뷰에서 키보드 사라짐 증상 본문
안드로이드에서 웹뷰로 웹페이지를 띄울때 키보드 사라짐 증상에 대한 해결책을 남겨보고자 한다.
웹뷰 또는 모바일웹에서 그리드에서 input 박스 선택시 키보드가 나타났다 바로 사라지는 증상이 있는데.
안드로이드에서는 AndroidManifest.xml에서 아래와 같이 추가하면된다.
<activity
android:name="xxx.xxx.xxx.WebViewact"
android:screenOrientation="portrait"
android:theme="@style/AppThemeNoActionBar" />
에서
<activity
android:name="xxx.xxx.xxx.WebViewact"
android:screenOrientation="portrait"
android:theme="@style/AppThemeNoActionBar"
android:windowSoftInputMode="adjustNothing"/>
와 같이 android:windowSoftInputMode="adjustNothing" 한줄을 추가해주면 화면과 키보드간 영향을 주지 않는다.
다시말해 키보드가 나와야 할 시점에 키보드가 사라지는 증상이 해결된다. 단 키보드 보임 옵션은 여러가지가 있으며 아래와 같다.
adjustPan
소프트 키보드에 의해 EditText 가 가려지지 않도록 위쪽으로 이동.
하단 그림과 같이 위, 아래가 잘리게 된다.
adjustResize
소프트 키보드가 보이도록 공간을 확보하기 위해 activity window 을 resize 한다.
하단 그림과 같이 위, 아래 모두 표시된다.
adjustUnspecified
시스템이 상황에 맞게 'adjustPan' or 'adjustResize' 를 결정한다.
소프트 키보드의 기본 값이다.
adjustNothing
Layout 에 어떤 영향도 주지 않고 소프트 키보드가 올라온다.
하단 그림과 같이 EditText 까지 가릴 수 있다.
stateHidden
Acitivty 실행 시 키보드가 자동으로 올라오지 않는다.
stateAlwaysHidden
Acitivty 실행 시 항상 키보드가 자동으로 올라오지 않는다.
액티비티 이동 포함
stateVisible
Acitivty 실행 시 키보드가 자동으로 올라 온다.
EditText에 포커스 맞춰짐
stateAlwaysVisible
Acitivty 실행 시 항상 키보드가 자동으로 올라 온다.
EditText에 포커스 맞춰짐, 액티비티 이동 포함
stateUnchanged
키보드를 마지막 설정 상태로 유지 한다.
stateUnspecified
시스템이 적절한 키보드를 상태를 설정해 주거나 테마에 따라 설정 해준다.
소프트 키보드 상태의 기본 값이다.
추가로. AndroidManifest.xml이 아닌 자바 소스코드에서 위와 같은 옵션을 주기위해서는 다음과 같이 하여도 된다.
public class WebviewAct extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_ADJUST_NOTHING);
}
}
Ref
'프로그래밍 > 안드로이드' 카테고리의 다른 글
안드로이드 ndk 오류로 인한 프로그램 실행이 안되는 경우. (0) | 2024.03.18 |
---|---|
안드로이드 웹뷰 원격 디버깅하기. (0) | 2022.02.23 |
안드로이드 레이아웃 xml에서 투명도 넣기 (0) | 2020.08.11 |