fix(login): 키보드 높이에 따라 화면을 위로 미는 로직이 BaseActivity, LoginActivity 두 군데에 있어서 2중으로 적용되는 버그 수정
- LoginActivity에 있는 키보드 높이에 따른 화면 Resize로직 제거
This commit is contained in:
@@ -2,18 +2,13 @@ package kr.co.vividnext.sodalive.user.login
|
||||
|
||||
import android.app.Service
|
||||
import android.content.Intent
|
||||
import android.graphics.Rect
|
||||
import android.os.Bundle
|
||||
import android.os.Handler
|
||||
import android.os.Looper
|
||||
import android.transition.TransitionManager
|
||||
import android.view.inputmethod.EditorInfo
|
||||
import android.view.inputmethod.InputMethodManager
|
||||
import android.widget.LinearLayout
|
||||
import android.widget.Toast
|
||||
import androidx.annotation.OptIn
|
||||
import androidx.constraintlayout.widget.ConstraintLayout
|
||||
import androidx.constraintlayout.widget.ConstraintSet
|
||||
import androidx.credentials.Credential
|
||||
import androidx.credentials.CredentialManager
|
||||
import androidx.credentials.CustomCredential
|
||||
@@ -38,7 +33,6 @@ import kr.co.vividnext.sodalive.base.BaseActivity
|
||||
import kr.co.vividnext.sodalive.common.Constants
|
||||
import kr.co.vividnext.sodalive.common.LoadingDialog
|
||||
import kr.co.vividnext.sodalive.databinding.ActivityLoginBinding
|
||||
import kr.co.vividnext.sodalive.extensions.dpToPx
|
||||
import kr.co.vividnext.sodalive.main.MainActivity
|
||||
import kr.co.vividnext.sodalive.user.find_password.FindPasswordActivity
|
||||
import kr.co.vividnext.sodalive.user.signup.SignUpActivity
|
||||
@@ -62,21 +56,6 @@ class LoginActivity : BaseActivity<ActivityLoginBinding>(ActivityLoginBinding::i
|
||||
}
|
||||
|
||||
override fun setupView() {
|
||||
binding.root.viewTreeObserver.addOnGlobalLayoutListener {
|
||||
val rect = Rect()
|
||||
binding.root.getWindowVisibleDisplayFrame(rect)
|
||||
|
||||
val keypadHeight = screenHeight - rect.bottom
|
||||
if (keypadHeight > screenHeight * 0.15) {
|
||||
updateMarginWithAnimation(
|
||||
binding.llLoginContainer,
|
||||
-100f.dpToPx().toInt()
|
||||
)
|
||||
} else {
|
||||
updateMarginWithAnimation(binding.llLoginContainer, 0)
|
||||
}
|
||||
}
|
||||
|
||||
binding.toolbar.tvBack.text = "로그인"
|
||||
binding.toolbar.tvBack.setOnClickListener { finish() }
|
||||
loadingDialog = LoadingDialog(this, layoutInflater)
|
||||
@@ -223,25 +202,6 @@ class LoginActivity : BaseActivity<ActivityLoginBinding>(ActivityLoginBinding::i
|
||||
}
|
||||
}
|
||||
|
||||
private fun updateMarginWithAnimation(view: LinearLayout, newMargin: Int) {
|
||||
val constraintLayout = view.parent as ConstraintLayout
|
||||
val constraintSet = ConstraintSet()
|
||||
constraintSet.clone(constraintLayout)
|
||||
|
||||
// 변경할 Constraint 적용 (margin 변경)
|
||||
constraintSet.connect(
|
||||
view.id,
|
||||
ConstraintSet.TOP,
|
||||
ConstraintSet.PARENT_ID,
|
||||
ConstraintSet.TOP,
|
||||
newMargin
|
||||
)
|
||||
|
||||
// 애니메이션 적용
|
||||
TransitionManager.beginDelayedTransition(constraintLayout)
|
||||
constraintSet.applyTo(constraintLayout)
|
||||
}
|
||||
|
||||
private fun hideKeyboard() {
|
||||
handler.postDelayed({
|
||||
imm.hideSoftInputFromWindow(
|
||||
|
||||
Reference in New Issue
Block a user