특정 Fragment에서 EditText를 클릭해서 키보드가 올라올때
android:layout_alignParentBottom="true"
속성으로 선언된 버튼이 키보드 위에 가려지지 않고 올라와야함.
특정 이동 경로를 따르면 잘 작동하지만 그렇지 않으면 키보드가 올라올때 버튼이 같이 올라오지 않고 버튼을 가리는 이슈가 발생.
1. Manifests 설정
android:windowSoftInputMode="adjustResize" -> 해결 안됨
android:windowSoftInputMode="adjustPan" -> 해결안됨
-> 모든 프래그먼트에서 뷰를 밀면서 올라오는 이슈 발생
2. 프래그먼트 이동 경로 변경
MainActivity -> AFragment -> MainActivity에 선언된 BottomNavi B탭 클릭 -> BFragment -> CFragment 정상 작동
MainActivity -> ZFragment -> XFragment -> CFragment -> 정상 작동 X
자바파일에는 아무런 코드 x
같은 CFragment 여도 진입 경로에 따라 다른 동작 발생
같은 레이아웃 파일이 이동 경로에 따라 다른 동작이 발생하는것을 보니 stack과 관련된 문제라 생각.
tools -> Layout Inspector 를 켜서 뷰 계층 확인
쌓인 스택에 ScollView가 존재 유/무의 차이만 존재
해당 프래그먼트 or 하위 스택에라도 스크롤뷰가 존재해야만 키보드가 뷰를 가리지 않고 밀면서 올라옴.
ScrollView 내에서 키보드가 활성화될 때 Android 시스템은 adjustResize 옵션을 자동으로 적용하여 키보드에 의해 컨텐츠가 가려지지 않게 함.
Fragment는 스택 위에 쌓이며, 이전 Fragment는 백그라운드에 있을 수 있음. 만약 이전 Fragment에 ScrollView 또는 다른 스크롤 가능한 뷰가 있으면, 그것이 현재 표시되는 Fragment의 키보드 동작에 영향을 줌.
https://developer.android.com/guide/topics/manifest/activity-element?hl=ko
https://developer.android.com/guide/components/activities/tasks-and-back-stack?hl=ko