kunfei 4 лет назад
Родитель
Сommit
49fab5ce68

+ 1 - 1
app/src/main/java/io/legado/app/ui/book/source/edit/BookSourceEditActivity.kt

@@ -65,6 +65,7 @@ class BookSourceEditActivity :
     }
     }
 
 
     override fun onActivityCreated(savedInstanceState: Bundle?) {
     override fun onActivityCreated(savedInstanceState: Bundle?) {
+        softKeyboardTool.attachToWindow(window)
         initView()
         initView()
         viewModel.initData(intent) {
         viewModel.initData(intent) {
             upRecyclerView()
             upRecyclerView()
@@ -135,7 +136,6 @@ class BookSourceEditActivity :
 
 
     private fun initView() {
     private fun initView() {
         binding.recyclerView.setEdgeEffectColor(primaryColor)
         binding.recyclerView.setEdgeEffectColor(primaryColor)
-        window.decorView.viewTreeObserver.addOnGlobalLayoutListener(softKeyboardTool)
         binding.recyclerView.layoutManager = LinearLayoutManager(this)
         binding.recyclerView.layoutManager = LinearLayoutManager(this)
         binding.recyclerView.adapter = adapter
         binding.recyclerView.adapter = adapter
         binding.tabLayout.setBackgroundColor(backgroundColor)
         binding.tabLayout.setBackgroundColor(backgroundColor)

+ 1 - 1
app/src/main/java/io/legado/app/ui/replace/edit/ReplaceEditActivity.kt

@@ -52,7 +52,7 @@ class ReplaceEditActivity :
     }
     }
 
 
     override fun onActivityCreated(savedInstanceState: Bundle?) {
     override fun onActivityCreated(savedInstanceState: Bundle?) {
-        window.decorView.viewTreeObserver.addOnGlobalLayoutListener(softKeyboardTool)
+        softKeyboardTool.attachToWindow(window)
         viewModel.initData(intent) {
         viewModel.initData(intent) {
             upReplaceView(it)
             upReplaceView(it)
         }
         }

+ 1 - 1
app/src/main/java/io/legado/app/ui/rss/source/edit/RssSourceEditActivity.kt

@@ -44,6 +44,7 @@ class RssSourceEditActivity :
     }
     }
 
 
     override fun onActivityCreated(savedInstanceState: Bundle?) {
     override fun onActivityCreated(savedInstanceState: Bundle?) {
+        softKeyboardTool.attachToWindow(window)
         initView()
         initView()
         viewModel.initData(intent) {
         viewModel.initData(intent) {
             upRecyclerView()
             upRecyclerView()
@@ -136,7 +137,6 @@ class RssSourceEditActivity :
 
 
     private fun initView() {
     private fun initView() {
         binding.recyclerView.setEdgeEffectColor(primaryColor)
         binding.recyclerView.setEdgeEffectColor(primaryColor)
-        window.decorView.viewTreeObserver.addOnGlobalLayoutListener(softKeyboardTool)
         binding.recyclerView.adapter = adapter
         binding.recyclerView.adapter = adapter
     }
     }
 
 

+ 4 - 0
app/src/main/java/io/legado/app/ui/widget/KeyboardToolPop.kt

@@ -47,6 +47,10 @@ class KeyboardToolPop(
         upAdapterData()
         upAdapterData()
     }
     }
 
 
+    fun attachToWindow(window: Window) {
+        window.decorView.viewTreeObserver.addOnGlobalLayoutListener(this)
+    }
+
     override fun onGlobalLayout() {
     override fun onGlobalLayout() {
         val rect = Rect()
         val rect = Rect()
         // 获取当前页面窗口的显示范围
         // 获取当前页面窗口的显示范围