From 8ec91efcc491676390aa9ea6363726478252e1a1 Mon Sep 17 00:00:00 2001 From: HapeLee <1321903405@qq.com> Date: Sun, 30 Nov 2025 13:26:04 +0800 Subject: [PATCH] =?UTF-8?q?[=E4=BF=AE=E5=A4=8D]=20=E9=9A=90=E8=97=8F?= =?UTF-8?q?=E6=A0=87=E7=AD=BE=E6=97=B6=EF=BC=8C=E8=BF=9B=E5=85=A5=E8=BD=AF?= =?UTF-8?q?=E4=BB=B6=E5=90=8E=E6=81=A2=E5=A4=8D=E4=B8=8A=E4=B8=80=E6=AC=A1?= =?UTF-8?q?=E7=9A=84=E5=88=86=E7=BB=84=E5=AE=9A=E4=BD=8D=20#348?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bookshelf/books/BookshelfFragment1.kt | 2 +- .../bookshelf/books/BookshelfFragment3.kt | 28 +++++++++++-------- .../bookshelf/books/BookshelfFragment4.kt | 2 +- 3 files changed, 18 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/io/legado/app/ui/main/bookshelf/books/BookshelfFragment1.kt b/app/src/main/java/io/legado/app/ui/main/bookshelf/books/BookshelfFragment1.kt index 1884e3f0a..183416c48 100644 --- a/app/src/main/java/io/legado/app/ui/main/bookshelf/books/BookshelfFragment1.kt +++ b/app/src/main/java/io/legado/app/ui/main/bookshelf/books/BookshelfFragment1.kt @@ -71,7 +71,7 @@ class BookshelfFragment1() : BaseBookshelfFragment(R.layout.fragment_bookshelf1) private fun initView() { adapter = TabFragmentPageAdapter(this) binding.viewPagerBookshelf.adapter = adapter - binding.viewPagerBookshelf.offscreenPageLimit = 1 + binding.viewPagerBookshelf.offscreenPageLimit = 3 TabLayoutMediator(binding.tabLayout, binding.viewPagerBookshelf) { tab, position -> tab.text = bookGroups[position].groupName diff --git a/app/src/main/java/io/legado/app/ui/main/bookshelf/books/BookshelfFragment3.kt b/app/src/main/java/io/legado/app/ui/main/bookshelf/books/BookshelfFragment3.kt index 66fed258d..12b5002bc 100644 --- a/app/src/main/java/io/legado/app/ui/main/bookshelf/books/BookshelfFragment3.kt +++ b/app/src/main/java/io/legado/app/ui/main/bookshelf/books/BookshelfFragment3.kt @@ -26,7 +26,6 @@ import kotlin.collections.set * 书架界面 */ class BookshelfFragment3() : BaseBookshelfFragment(R.layout.fragment_bookshelf3), - TabLayout.OnTabSelectedListener, SearchView.OnQueryTextListener { constructor(position: Int) : this() { @@ -63,12 +62,13 @@ class BookshelfFragment3() : BaseBookshelfFragment(R.layout.fragment_bookshelf3) private fun initView() { adapter = TabFragmentPageAdapter(this) binding.viewPagerBookshelf.adapter = adapter - binding.viewPagerBookshelf.offscreenPageLimit = 1 + binding.viewPagerBookshelf.offscreenPageLimit = 3 binding.viewPagerBookshelf.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { override fun onPageSelected(position: Int) { super.onPageSelected(position) updateToolbarTitle(position) + AppConfig.saveTabPosition = position } }) } @@ -100,8 +100,8 @@ class BookshelfFragment3() : BaseBookshelfFragment(R.layout.fragment_bookshelf3) adapter.notifyDataSetChanged() adapter = TabFragmentPageAdapter(this) binding.viewPagerBookshelf.adapter = adapter - updateToolbarTitle(binding.viewPagerBookshelf.currentItem) + selectLastTab() } } } @@ -117,19 +117,23 @@ class BookshelfFragment3() : BaseBookshelfFragment(R.layout.fragment_bookshelf3) } } - override fun onTabReselected(tab: TabLayout.Tab) { - } - - override fun onTabUnselected(tab: TabLayout.Tab) = Unit - - override fun onTabSelected(tab: TabLayout.Tab) { - AppConfig.saveTabPosition = tab.position - } - override fun gotoTop() { fragmentMap[groupId]?.gotoTop() } + private fun selectLastTab() { + val lastPosition = AppConfig.saveTabPosition + if (lastPosition in 0 until bookGroups.size) { + binding.viewPagerBookshelf.post { + binding.viewPagerBookshelf.setCurrentItem(lastPosition, false) + updateToolbarTitle(lastPosition) + } + } else { + AppConfig.saveTabPosition = 0 + updateToolbarTitle(0) + } + } + private inner class TabFragmentPageAdapter(fragment: Fragment) : FragmentStateAdapter(fragment) { override fun getItemCount(): Int = bookGroups.size diff --git a/app/src/main/java/io/legado/app/ui/main/bookshelf/books/BookshelfFragment4.kt b/app/src/main/java/io/legado/app/ui/main/bookshelf/books/BookshelfFragment4.kt index ab93e76e5..1f5624507 100644 --- a/app/src/main/java/io/legado/app/ui/main/bookshelf/books/BookshelfFragment4.kt +++ b/app/src/main/java/io/legado/app/ui/main/bookshelf/books/BookshelfFragment4.kt @@ -67,7 +67,7 @@ class BookshelfFragment4() : BaseBookshelfFragment(R.layout.fragment_bookshelf4) private fun initView() { adapter = TabFragmentPageAdapter(this) binding.viewPagerBookshelf.adapter = adapter - binding.viewPagerBookshelf.offscreenPageLimit = 1 + binding.viewPagerBookshelf.offscreenPageLimit = 3 TabLayoutMediator(binding.tabLayout, binding.viewPagerBookshelf) { tab, position -> tab.text = bookGroups[position].groupName