Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions lib_common/src/main/java/com/sum/common/constant/IntentKey.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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"

4 changes: 3 additions & 1 deletion mod_main/src/main/java/com/sum/main/ui/home/HomeFragment.kt
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,9 @@ class HomeFragment : BaseMvvmFragment<FragmentHomeBinding, HomeViewModel>(), 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()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -47,6 +48,7 @@ class HomeVideoFragment : BaseMvvmFragment<FragmentHomeVideoBinding, HomeViewMod
if (granted) {
ARouter.getInstance().build(VIDEO_ACTIVITY_PLAYER)
.withParcelableArrayList(KEY_VIDEO_PLAY_LIST, videoAdapter.getData() as ArrayList<VideoInfo>)
.withInt(KEY_VIDEO_POSITION, position)//将当前点击的条目位置传递过去
.navigation()
} else {
TipsToast.showTips(com.sum.common.R.string.default_agree_permission)
Expand Down
11 changes: 10 additions & 1 deletion mod_video/src/main/java/com/sum/video/VideoPlayActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -88,6 +89,11 @@ class VideoPlayActivity : BaseDataBindActivity<ActivityVideoPlayBinding>() {
@JvmField
var mData: ArrayList<VideoInfo>? = null

//通过注解自动注入跳转传递的数据,当前点击的视频条目
@Autowired(name = KEY_VIDEO_POSITION)
@JvmField
var mCurrentPosition :Int = 0

override fun initView(savedInstanceState: Bundle?) {
ARouter.getInstance().inject(this)
StatusBarSettingHelper.setStatusBarTranslucent(this)
Expand Down Expand Up @@ -121,6 +127,8 @@ class VideoPlayActivity : BaseDataBindActivity<ActivityVideoPlayBinding>() {
mBinding.ivVideoPause.gone()
}
}
//初始化将短视频列表滑动到点击的条目
mBinding.recyclerView.scrollToPosition(mCurrentPosition)
}

override fun onStart() {
Expand Down Expand Up @@ -242,7 +250,8 @@ class VideoPlayActivity : BaseDataBindActivity<ActivityVideoPlayBinding>() {
*/
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?) {
Expand Down