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