From 305a23fc88f572844f2e7359cf7201b033e67b0c Mon Sep 17 00:00:00 2001 From: kunfei Date: Thu, 16 Mar 2023 22:55:47 +0800 Subject: [PATCH] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E9=9A=90=E8=97=8F=E9=94=AE?= =?UTF-8?q?=E7=9B=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../book/source/manage/BookSourceActivity.kt | 7 +++ .../io/legado/app/ui/main/MainActivity.kt | 13 +++-- .../app/ui/main/explore/ExploreFragment.kt | 14 ++---- .../app/utils/SoftKeyBoardChangeListener.kt | 47 ------------------- 4 files changed, 20 insertions(+), 61 deletions(-) delete mode 100644 app/src/main/java/io/legado/app/utils/SoftKeyBoardChangeListener.kt diff --git a/app/src/main/java/io/legado/app/ui/book/source/manage/BookSourceActivity.kt b/app/src/main/java/io/legado/app/ui/book/source/manage/BookSourceActivity.kt index f2ec893bb..54836bdbe 100644 --- a/app/src/main/java/io/legado/app/ui/book/source/manage/BookSourceActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/source/manage/BookSourceActivity.kt @@ -110,6 +110,13 @@ class BookSourceActivity : VMBaseActivity(), } } + override fun dispatchTouchEvent(ev: MotionEvent): Boolean { + if (ev.action == MotionEvent.ACTION_DOWN) { + binding.root.hideSoftInput() + } + return super.dispatchTouchEvent(ev) + } + override fun onPostCreate(savedInstanceState: Bundle?) { super.onPostCreate(savedInstanceState) launch { diff --git a/app/src/main/java/io/legado/app/ui/main/explore/ExploreFragment.kt b/app/src/main/java/io/legado/app/ui/main/explore/ExploreFragment.kt index 969ae561e..7622a2d40 100644 --- a/app/src/main/java/io/legado/app/ui/main/explore/ExploreFragment.kt +++ b/app/src/main/java/io/legado/app/ui/main/explore/ExploreFragment.kt @@ -23,7 +23,10 @@ import io.legado.app.lib.theme.primaryColor import io.legado.app.lib.theme.primaryTextColor import io.legado.app.ui.book.explore.ExploreShowActivity import io.legado.app.ui.book.source.edit.BookSourceEditActivity -import io.legado.app.utils.* +import io.legado.app.utils.applyTint +import io.legado.app.utils.cnCompare +import io.legado.app.utils.setEdgeEffectColor +import io.legado.app.utils.startActivity import io.legado.app.utils.viewbindingdelegate.viewBinding import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Job @@ -48,7 +51,6 @@ class ExploreFragment : VMBaseFragment(R.layout.fragment_explo private val groups = linkedSetOf() private var exploreFlowJob: Job? = null private var groupsMenu: SubMenu? = null - private val softKeyBoardChangeListener = SoftKeyBoardChangeListener() override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { setSupportToolbar(binding.titleBar.toolbar) @@ -56,14 +58,6 @@ class ExploreFragment : VMBaseFragment(R.layout.fragment_explo initRecyclerView() initGroupData() upExploreData() - softKeyBoardChangeListener.attach(requireActivity().window) { - binding.root.setPaddingBottom(softKeyBoardChangeListener.keyBoardHeight) - } - } - - override fun onDestroy() { - super.onDestroy() - softKeyBoardChangeListener.unAttach() } override fun onCompatCreateOptionsMenu(menu: Menu) { diff --git a/app/src/main/java/io/legado/app/utils/SoftKeyBoardChangeListener.kt b/app/src/main/java/io/legado/app/utils/SoftKeyBoardChangeListener.kt deleted file mode 100644 index 1e76e6a1a..000000000 --- a/app/src/main/java/io/legado/app/utils/SoftKeyBoardChangeListener.kt +++ /dev/null @@ -1,47 +0,0 @@ -package io.legado.app.utils - -import android.graphics.Rect -import android.view.ViewTreeObserver -import android.view.Window -import splitties.systemservices.windowManager -import kotlin.math.abs - -class SoftKeyBoardChangeListener : ViewTreeObserver.OnGlobalLayoutListener { - - private var window: Window? = null - private var softKeyBoardChangeCallback: ((Boolean) -> Unit)? = null - var keyBoardShowing = false - private set - var keyBoardHeight = 0 - - fun attach(window: Window, callback: ((Boolean) -> Unit)) { - this.window = window - window.decorView.viewTreeObserver.addOnGlobalLayoutListener(this) - softKeyBoardChangeCallback = callback - } - - fun unAttach() { - window?.decorView?.viewTreeObserver?.removeOnGlobalLayoutListener(this) - window = null - } - - override fun onGlobalLayout() { - window?.let { - val rect = Rect() - // 获取当前页面窗口的显示范围 - it.decorView.getWindowVisibleDisplayFrame(rect) - val screenHeight = windowManager.windowSize.heightPixels - val keyboardHeight = screenHeight - rect.bottom // 输入法的高度 - if (abs(keyboardHeight) > screenHeight / 5) { - keyBoardShowing = true // 超过屏幕五分之一则表示弹出了输入法 - this.keyBoardHeight = abs(keyboardHeight) - softKeyBoardChangeCallback?.invoke(true) - } else { - keyBoardShowing = false - this.keyBoardHeight = 0 - softKeyBoardChangeCallback?.invoke(false) - } - } - } - -} \ No newline at end of file