[修复] 隐藏标签时,进入软件后恢复上一次的分组定位 #348
This commit is contained in:
@@ -71,7 +71,7 @@ class BookshelfFragment1() : BaseBookshelfFragment(R.layout.fragment_bookshelf1)
|
|||||||
private fun initView() {
|
private fun initView() {
|
||||||
adapter = TabFragmentPageAdapter(this)
|
adapter = TabFragmentPageAdapter(this)
|
||||||
binding.viewPagerBookshelf.adapter = adapter
|
binding.viewPagerBookshelf.adapter = adapter
|
||||||
binding.viewPagerBookshelf.offscreenPageLimit = 1
|
binding.viewPagerBookshelf.offscreenPageLimit = 3
|
||||||
|
|
||||||
TabLayoutMediator(binding.tabLayout, binding.viewPagerBookshelf) { tab, position ->
|
TabLayoutMediator(binding.tabLayout, binding.viewPagerBookshelf) { tab, position ->
|
||||||
tab.text = bookGroups[position].groupName
|
tab.text = bookGroups[position].groupName
|
||||||
|
|||||||
@@ -26,7 +26,6 @@ import kotlin.collections.set
|
|||||||
* 书架界面
|
* 书架界面
|
||||||
*/
|
*/
|
||||||
class BookshelfFragment3() : BaseBookshelfFragment(R.layout.fragment_bookshelf3),
|
class BookshelfFragment3() : BaseBookshelfFragment(R.layout.fragment_bookshelf3),
|
||||||
TabLayout.OnTabSelectedListener,
|
|
||||||
SearchView.OnQueryTextListener {
|
SearchView.OnQueryTextListener {
|
||||||
|
|
||||||
constructor(position: Int) : this() {
|
constructor(position: Int) : this() {
|
||||||
@@ -63,12 +62,13 @@ class BookshelfFragment3() : BaseBookshelfFragment(R.layout.fragment_bookshelf3)
|
|||||||
private fun initView() {
|
private fun initView() {
|
||||||
adapter = TabFragmentPageAdapter(this)
|
adapter = TabFragmentPageAdapter(this)
|
||||||
binding.viewPagerBookshelf.adapter = adapter
|
binding.viewPagerBookshelf.adapter = adapter
|
||||||
binding.viewPagerBookshelf.offscreenPageLimit = 1
|
binding.viewPagerBookshelf.offscreenPageLimit = 3
|
||||||
|
|
||||||
binding.viewPagerBookshelf.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() {
|
binding.viewPagerBookshelf.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() {
|
||||||
override fun onPageSelected(position: Int) {
|
override fun onPageSelected(position: Int) {
|
||||||
super.onPageSelected(position)
|
super.onPageSelected(position)
|
||||||
updateToolbarTitle(position)
|
updateToolbarTitle(position)
|
||||||
|
AppConfig.saveTabPosition = position
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -100,8 +100,8 @@ class BookshelfFragment3() : BaseBookshelfFragment(R.layout.fragment_bookshelf3)
|
|||||||
adapter.notifyDataSetChanged()
|
adapter.notifyDataSetChanged()
|
||||||
adapter = TabFragmentPageAdapter(this)
|
adapter = TabFragmentPageAdapter(this)
|
||||||
binding.viewPagerBookshelf.adapter = adapter
|
binding.viewPagerBookshelf.adapter = adapter
|
||||||
|
|
||||||
updateToolbarTitle(binding.viewPagerBookshelf.currentItem)
|
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() {
|
override fun gotoTop() {
|
||||||
fragmentMap[groupId]?.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) {
|
private inner class TabFragmentPageAdapter(fragment: Fragment) : FragmentStateAdapter(fragment) {
|
||||||
override fun getItemCount(): Int = bookGroups.size
|
override fun getItemCount(): Int = bookGroups.size
|
||||||
|
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ class BookshelfFragment4() : BaseBookshelfFragment(R.layout.fragment_bookshelf4)
|
|||||||
private fun initView() {
|
private fun initView() {
|
||||||
adapter = TabFragmentPageAdapter(this)
|
adapter = TabFragmentPageAdapter(this)
|
||||||
binding.viewPagerBookshelf.adapter = adapter
|
binding.viewPagerBookshelf.adapter = adapter
|
||||||
binding.viewPagerBookshelf.offscreenPageLimit = 1
|
binding.viewPagerBookshelf.offscreenPageLimit = 3
|
||||||
|
|
||||||
TabLayoutMediator(binding.tabLayout, binding.viewPagerBookshelf) { tab, position ->
|
TabLayoutMediator(binding.tabLayout, binding.viewPagerBookshelf) { tab, position ->
|
||||||
tab.text = bookGroups[position].groupName
|
tab.text = bookGroups[position].groupName
|
||||||
|
|||||||
Reference in New Issue
Block a user