diff --git a/lib_common/src/main/java/com/sum/common/constant/IntentKey.kt b/lib_common/src/main/java/com/sum/common/constant/IntentKey.kt index 1172435..3ec5a8c 100644 --- a/lib_common/src/main/java/com/sum/common/constant/IntentKey.kt +++ b/lib_common/src/main/java/com/sum/common/constant/IntentKey.kt @@ -15,3 +15,5 @@ const val KEY_URL = "url" const val KEY_TITLE = "title" const val KEY_POSITION = "position" const val KEY_VIDEO_PLAY_LIST = "video_play_list" +const val KEY_VIDEO_POSITION = "video_position" + diff --git a/mod_main/src/main/java/com/sum/main/ui/home/HomeFragment.kt b/mod_main/src/main/java/com/sum/main/ui/home/HomeFragment.kt index 8d3517d..7fbe42a 100644 --- a/mod_main/src/main/java/com/sum/main/ui/home/HomeFragment.kt +++ b/mod_main/src/main/java/com/sum/main/ui/home/HomeFragment.kt @@ -124,7 +124,9 @@ class HomeFragment : BaseMvvmFragment(), OnR it.viewPager.offscreenPageLimit = mArrayTabFragments.size() mTabLayoutMediator = TabLayoutMediator(it.tabHome, it.viewPager) { tab: TabLayout.Tab, position: Int -> - tab.text = mProjectTabs[position].name + if(position < mProjectTabs.size){//需进行判断,否则断网刷新后APP会闪退(索引越界异常) + tab.text = mProjectTabs[position].name + } } //tabLayout和viewPager2关联起来 mTabLayoutMediator?.attach() diff --git a/mod_main/src/main/java/com/sum/main/ui/home/HomeVideoFragment.kt b/mod_main/src/main/java/com/sum/main/ui/home/HomeVideoFragment.kt index 3bb1611..6463776 100644 --- a/mod_main/src/main/java/com/sum/main/ui/home/HomeVideoFragment.kt +++ b/mod_main/src/main/java/com/sum/main/ui/home/HomeVideoFragment.kt @@ -6,6 +6,7 @@ import android.view.View import androidx.recyclerview.widget.StaggeredGridLayoutManager import com.alibaba.android.arouter.launcher.ARouter import com.sum.common.constant.KEY_VIDEO_PLAY_LIST +import com.sum.common.constant.KEY_VIDEO_POSITION import com.sum.common.constant.VIDEO_ACTIVITY_PLAYER import com.sum.framework.decoration.StaggeredItemDecoration import com.sum.framework.base.BaseMvvmFragment @@ -47,6 +48,7 @@ class HomeVideoFragment : BaseMvvmFragment) + .withInt(KEY_VIDEO_POSITION, position)//将当前点击的条目位置传递过去 .navigation() } else { TipsToast.showTips(com.sum.common.R.string.default_agree_permission) diff --git a/mod_video/src/main/java/com/sum/video/VideoPlayActivity.kt b/mod_video/src/main/java/com/sum/video/VideoPlayActivity.kt index 3fd06e4..32a49fe 100644 --- a/mod_video/src/main/java/com/sum/video/VideoPlayActivity.kt +++ b/mod_video/src/main/java/com/sum/video/VideoPlayActivity.kt @@ -30,6 +30,7 @@ import com.google.android.exoplayer2.upstream.cache.CacheDataSource import com.google.android.exoplayer2.upstream.cache.LeastRecentlyUsedCacheEvictor import com.google.android.exoplayer2.upstream.cache.SimpleCache import com.sum.common.constant.KEY_VIDEO_PLAY_LIST +import com.sum.common.constant.KEY_VIDEO_POSITION import com.sum.common.constant.VIDEO_ACTIVITY_PLAYER import com.sum.framework.base.BaseDataBindActivity import com.sum.framework.ext.gone @@ -88,6 +89,11 @@ class VideoPlayActivity : BaseDataBindActivity() { @JvmField var mData: ArrayList? = null + //通过注解自动注入跳转传递的数据,当前点击的视频条目 + @Autowired(name = KEY_VIDEO_POSITION) + @JvmField + var mCurrentPosition :Int = 0 + override fun initView(savedInstanceState: Bundle?) { ARouter.getInstance().inject(this) StatusBarSettingHelper.setStatusBarTranslucent(this) @@ -121,6 +127,8 @@ class VideoPlayActivity : BaseDataBindActivity() { mBinding.ivVideoPause.gone() } } + //初始化将短视频列表滑动到点击的条目 + mBinding.recyclerView.scrollToPosition(mCurrentPosition) } override fun onStart() { @@ -242,7 +250,8 @@ class VideoPlayActivity : BaseDataBindActivity() { */ private val onScrollPagerListener = object : OnViewPagerListener { override fun onInitComplete(view: View?) { - startPlay(0, view) + //startPlay(0, view) + startPlay(mCurrentPosition, view)//条目的点击事件是从HomeVideoFragment传递过来的 } override fun onPageRelease(isNext: Boolean, position: Int, view: View?) {