diff --git a/app/src/main/java/io/legado/app/ui/book/source/edit/BookSourceEditActivity.kt b/app/src/main/java/io/legado/app/ui/book/source/edit/BookSourceEditActivity.kt index 48feb17e4..7c1a3d84b 100644 --- a/app/src/main/java/io/legado/app/ui/book/source/edit/BookSourceEditActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/source/edit/BookSourceEditActivity.kt @@ -65,6 +65,7 @@ class BookSourceEditActivity : } override fun onActivityCreated(savedInstanceState: Bundle?) { + softKeyboardTool.attachToWindow(window) initView() viewModel.initData(intent) { upRecyclerView() @@ -135,7 +136,6 @@ class BookSourceEditActivity : private fun initView() { binding.recyclerView.setEdgeEffectColor(primaryColor) - window.decorView.viewTreeObserver.addOnGlobalLayoutListener(softKeyboardTool) binding.recyclerView.layoutManager = LinearLayoutManager(this) binding.recyclerView.adapter = adapter binding.tabLayout.setBackgroundColor(backgroundColor) diff --git a/app/src/main/java/io/legado/app/ui/replace/edit/ReplaceEditActivity.kt b/app/src/main/java/io/legado/app/ui/replace/edit/ReplaceEditActivity.kt index f1f4822d0..7201f0405 100644 --- a/app/src/main/java/io/legado/app/ui/replace/edit/ReplaceEditActivity.kt +++ b/app/src/main/java/io/legado/app/ui/replace/edit/ReplaceEditActivity.kt @@ -52,7 +52,7 @@ class ReplaceEditActivity : } override fun onActivityCreated(savedInstanceState: Bundle?) { - window.decorView.viewTreeObserver.addOnGlobalLayoutListener(softKeyboardTool) + softKeyboardTool.attachToWindow(window) viewModel.initData(intent) { upReplaceView(it) } diff --git a/app/src/main/java/io/legado/app/ui/rss/source/edit/RssSourceEditActivity.kt b/app/src/main/java/io/legado/app/ui/rss/source/edit/RssSourceEditActivity.kt index d44095c88..9379fd463 100644 --- a/app/src/main/java/io/legado/app/ui/rss/source/edit/RssSourceEditActivity.kt +++ b/app/src/main/java/io/legado/app/ui/rss/source/edit/RssSourceEditActivity.kt @@ -44,6 +44,7 @@ class RssSourceEditActivity : } override fun onActivityCreated(savedInstanceState: Bundle?) { + softKeyboardTool.attachToWindow(window) initView() viewModel.initData(intent) { upRecyclerView() @@ -136,7 +137,6 @@ class RssSourceEditActivity : private fun initView() { binding.recyclerView.setEdgeEffectColor(primaryColor) - window.decorView.viewTreeObserver.addOnGlobalLayoutListener(softKeyboardTool) binding.recyclerView.adapter = adapter } diff --git a/app/src/main/java/io/legado/app/ui/widget/KeyboardToolPop.kt b/app/src/main/java/io/legado/app/ui/widget/KeyboardToolPop.kt index c5a7bd95d..2088a8eec 100644 --- a/app/src/main/java/io/legado/app/ui/widget/KeyboardToolPop.kt +++ b/app/src/main/java/io/legado/app/ui/widget/KeyboardToolPop.kt @@ -47,6 +47,10 @@ class KeyboardToolPop( upAdapterData() } + fun attachToWindow(window: Window) { + window.decorView.viewTreeObserver.addOnGlobalLayoutListener(this) + } + override fun onGlobalLayout() { val rect = Rect() // 获取当前页面窗口的显示范围