[안드로이드 스튜디오] 키보드가 올라올 때 버튼 올리기

2023. 3. 10. 22:53개발/안드로이드 스튜디오

결과 화면

문제상황) 키보드가 올라갈 때 Frame layout 내의 Fragment의 버튼을 가림

1. AndroidMenifest.xml 파일에 한줄 추가

<activity
    android:name=".MainActivity"
    android:windowSoftInputMode="adjustResize"
    android:exported="true">

windowSoftInputMode 한줄을 추가한다.

액티비티 코드에도 추가하는 방법이 있었는데 이거 한 줄만 추가해도 작동에 문제가 없었다.

2. Fragment 의 xml 파일

올라가길 원하는 버튼의 xml 코드부분에가서

app:layout_constraintBottom_toBottomOf="parent"

이렇게 추가한다.

버튼의 부모 레이아웃은 constraint layout이다. 그것의 부모는 frame layout 일 것이다.

 

키보드가 올라올 때 올라가길 원치 않는 다른 구성 요소는

app:layout_constraintTop_toTopOf="parent"

이렇게 추가한다.

 

이렇게 하면 해당 버튼은 키보드가 나올 때 키보드 높이 + margin 만큼 올라가고 다른 요소들은 올라가지 않는다.