Fix editText scroll

This commit is contained in:
Chumva 2019-02-15 16:41:00 +02:00
parent 2dbb2b657e
commit 2757dca0a9

View file

@ -23,10 +23,7 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.view.WindowManager import android.view.WindowManager
import android.view.inputmethod.EditorInfo import android.view.inputmethod.EditorInfo
import android.widget.Button import android.widget.*
import android.widget.ImageView
import android.widget.LinearLayout
import android.widget.TextView
import net.osmand.PlatformUtil import net.osmand.PlatformUtil
import net.osmand.telegram.R import net.osmand.telegram.R
import net.osmand.telegram.utils.AndroidNetworkUtils import net.osmand.telegram.utils.AndroidNetworkUtils
@ -116,6 +113,7 @@ class LoginDialogFragment : BaseDialogFragment() {
private var showProgress = false private var showProgress = false
private var dismissedManually = false private var dismissedManually = false
private lateinit var continueButton: Button private lateinit var continueButton: Button
private lateinit var scrollView: ScrollView
enum class LoginDialogType(val viewId: Int, val editorId: Int, enum class LoginDialogType(val viewId: Int, val editorId: Int,
@StringRes val titleId: Int, @StringRes val descriptionId: Int, @StringRes val titleId: Int, @StringRes val descriptionId: Int,
@ -149,6 +147,7 @@ class LoginDialogFragment : BaseDialogFragment() {
} }
val view = inflater.inflate(R.layout.login_dialog, container) val view = inflater.inflate(R.layout.login_dialog, container)
continueButton = view.findViewById(R.id.continue_button) continueButton = view.findViewById(R.id.continue_button)
scrollView = view.findViewById(R.id.scroll_view)
buildDialog(view) buildDialog(view)
view.viewTreeObserver.addOnGlobalLayoutListener { view.viewTreeObserver.addOnGlobalLayoutListener {
@ -160,6 +159,7 @@ class LoginDialogFragment : BaseDialogFragment() {
if (!softKeyboardShown && softKeyboardVisible) { if (!softKeyboardShown && softKeyboardVisible) {
softKeyboardShown = softKeyboardVisible softKeyboardShown = softKeyboardVisible
transformContinueButton(true) transformContinueButton(true)
scrollToBottom()
} else if (softKeyboardShown && !softKeyboardVisible) { } else if (softKeyboardShown && !softKeyboardVisible) {
transformContinueButton(false) transformContinueButton(false)
} }
@ -180,6 +180,10 @@ class LoginDialogFragment : BaseDialogFragment() {
continueButton.requestLayout() continueButton.requestLayout()
} }
private fun scrollToBottom() {
scrollView.post { scrollView.fullScroll(ScrollView.FOCUS_DOWN); }
}
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
return object : Dialog(requireActivity(), theme) { return object : Dialog(requireActivity(), theme) {
override fun onBackPressed() { override fun onBackPressed() {
@ -253,7 +257,11 @@ class LoginDialogFragment : BaseDialogFragment() {
titleView?.text = getText(t.titleId) titleView?.text = getText(t.titleId)
descriptionView?.text = getText(t.descriptionId) descriptionView?.text = getText(t.descriptionId)
titleView?.setOnClickListener {
view.findViewById<ScrollView>(R.id.scroll_view)?.post {
view.findViewById<ScrollView>(R.id.scroll_view).fullScroll(View.FOCUS_DOWN)
}
}
layout.visibility = View.VISIBLE layout.visibility = View.VISIBLE
val editText: ExtendedEditText? = layout.findViewById(t.editorId) val editText: ExtendedEditText? = layout.findViewById(t.editorId)
if (editText != null && !showWelcomeDialog) { if (editText != null && !showWelcomeDialog) {