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.app.Service
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.graphics.Rect
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.os.Handler
|
import android.os.Handler
|
||||||
import android.os.Looper
|
import android.os.Looper
|
||||||
import android.transition.TransitionManager
|
|
||||||
import android.view.inputmethod.EditorInfo
|
import android.view.inputmethod.EditorInfo
|
||||||
import android.view.inputmethod.InputMethodManager
|
import android.view.inputmethod.InputMethodManager
|
||||||
import android.widget.LinearLayout
|
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.annotation.OptIn
|
import androidx.annotation.OptIn
|
||||||
import androidx.constraintlayout.widget.ConstraintLayout
|
|
||||||
import androidx.constraintlayout.widget.ConstraintSet
|
|
||||||
import androidx.credentials.Credential
|
import androidx.credentials.Credential
|
||||||
import androidx.credentials.CredentialManager
|
import androidx.credentials.CredentialManager
|
||||||
import androidx.credentials.CustomCredential
|
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.Constants
|
||||||
import kr.co.vividnext.sodalive.common.LoadingDialog
|
import kr.co.vividnext.sodalive.common.LoadingDialog
|
||||||
import kr.co.vividnext.sodalive.databinding.ActivityLoginBinding
|
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.main.MainActivity
|
||||||
import kr.co.vividnext.sodalive.user.find_password.FindPasswordActivity
|
import kr.co.vividnext.sodalive.user.find_password.FindPasswordActivity
|
||||||
import kr.co.vividnext.sodalive.user.signup.SignUpActivity
|
import kr.co.vividnext.sodalive.user.signup.SignUpActivity
|
||||||
@@ -62,21 +56,6 @@ class LoginActivity : BaseActivity<ActivityLoginBinding>(ActivityLoginBinding::i
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun setupView() {
|
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.text = "로그인"
|
||||||
binding.toolbar.tvBack.setOnClickListener { finish() }
|
binding.toolbar.tvBack.setOnClickListener { finish() }
|
||||||
loadingDialog = LoadingDialog(this, layoutInflater)
|
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() {
|
private fun hideKeyboard() {
|
||||||
handler.postDelayed({
|
handler.postDelayed({
|
||||||
imm.hideSoftInputFromWindow(
|
imm.hideSoftInputFromWindow(
|
||||||
|
|||||||
Reference in New Issue
Block a user