diff --git a/app/src/main/java/kr/co/vividnext/sodalive/base/BaseActivity.kt b/app/src/main/java/kr/co/vividnext/sodalive/base/BaseActivity.kt index f0522ef3..f73d9cc6 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/base/BaseActivity.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/base/BaseActivity.kt @@ -17,6 +17,7 @@ import androidx.core.view.WindowInsetsControllerCompat import androidx.localbroadcastmanager.content.LocalBroadcastManager import androidx.viewbinding.ViewBinding import io.reactivex.rxjava3.disposables.CompositeDisposable +import kotlin.math.max abstract class BaseActivity( private val inflate: (LayoutInflater) -> T @@ -66,10 +67,15 @@ abstract class BaseActivity( setupView() ViewCompat.setOnApplyWindowInsetsListener(binding.root) { v, insets -> - val bars = insets.getInsets(WindowInsetsCompat.Type.systemBars()) + val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()) + val ime = insets.getInsets(WindowInsetsCompat.Type.ime()) - // 루트는 좌/우/하만 처리(상단은 Toolbar에 위임) - v.setPadding(bars.left, bars.top, bars.right, bars.bottom) + // 루트는 좌/우/하만 처리(상단은 Toolbar에 위임). IME가 등장하면 하단 패딩을 IME 높이까지 확장 + val left = max(systemBars.left, ime.left) + val top = systemBars.top + val right = max(systemBars.right, ime.right) + val bottom = max(systemBars.bottom, ime.bottom) + v.setPadding(left, top, right, bottom) insets }