From db3ee32496bd14ba24f6627658295ec8be49189e Mon Sep 17 00:00:00 2001 From: niuhb <76513019+niu-hb@users.noreply.github.com> Date: Wed, 25 Dec 2024 14:17:13 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3rss=E5=88=86=E7=BB=84?= =?UTF-8?q?=E5=8F=98=E5=8C=96=E5=90=8E=EF=BC=8CtabLayout=E5=88=86=E7=BB=84?= =?UTF-8?q?=E9=80=89=E5=AE=9A=E9=97=AE=E9=A2=98=20(#4466)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ui/rss/favorites/RssFavoritesActivity.kt | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/app/src/main/java/io/legado/app/ui/rss/favorites/RssFavoritesActivity.kt b/app/src/main/java/io/legado/app/ui/rss/favorites/RssFavoritesActivity.kt index 9b854b353..bc0e9b88c 100644 --- a/app/src/main/java/io/legado/app/ui/rss/favorites/RssFavoritesActivity.kt +++ b/app/src/main/java/io/legado/app/ui/rss/favorites/RssFavoritesActivity.kt @@ -9,6 +9,7 @@ import android.view.SubMenu import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentStatePagerAdapter import androidx.lifecycle.lifecycleScope +import androidx.viewpager.widget.ViewPager import io.legado.app.R import io.legado.app.base.BaseActivity import io.legado.app.constant.AppLog @@ -20,6 +21,7 @@ import io.legado.app.utils.gone import io.legado.app.utils.viewbindingdelegate.viewBinding import io.legado.app.utils.visible import kotlinx.coroutines.Dispatchers.IO +import kotlinx.coroutines.delay import kotlinx.coroutines.flow.catch import kotlinx.coroutines.flow.distinctUntilChanged import kotlinx.coroutines.flow.flowOn @@ -34,14 +36,50 @@ class RssFavoritesActivity : BaseActivity() { private val adapter by lazy { TabFragmentPageAdapter() } private var groupList = mutableListOf() private var groupsMenu: SubMenu? = null + private var currentGroup = "" override fun onActivityCreated(savedInstanceState: Bundle?) { initView() upFragments() } + override fun onResume() { + super.onResume() + //从ReadRssActivity退出时,判断是否需要重新定位tabLayout选中项 + if (currentGroup.isNotEmpty() && groupList.isNotEmpty()){ + var item = groupList.indexOf(currentGroup) + val currentItem = binding.viewPager.currentItem + //如果坐标没有变化,则结束 + if(item == currentItem){ + return + } + if (item == -1){ + item = currentItem + } + lifecycleScope.launch { + delay(100) + binding.tabLayout.getTabAt(item)?.select() + } + } + } + private fun initView() { binding.viewPager.adapter = adapter + binding.viewPager.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { + override fun onPageScrolled( + position: Int, + positionOffset: Float, + positionOffsetPixels: Int + ) { + } + + override fun onPageSelected(position: Int) { + currentGroup = groupList[position] + } + + override fun onPageScrollStateChanged(state: Int) {} + + }) binding.tabLayout.setupWithViewPager(binding.viewPager) binding.tabLayout.setSelectedTabIndicatorColor(accentColor) }