解决进入首页视频流未选中的tab页面播放视频

This commit is contained in:
张玉久
2020-03-19 15:23:07 +08:00
parent aa76a20065
commit 1d29d68aa2
3 changed files with 8 additions and 7 deletions

View File

@ -12,10 +12,10 @@ abstract class BaseLazyFragment : NormalFragment() {
private var isViewCreated = false
private var isSupportVisible = false
protected var isSupportVisible = false
/**
* 用于分发可见时间的时候获取 fragment 是否隐藏
* 用于分发可见时间的时候获取 fragment 是否隐藏
*
* @return true fragment 不可见, false 父 fragment 可见
*/

View File

@ -9,7 +9,6 @@ import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.RecyclerView
import anet.channel.util.Utils.context
import com.gh.base.BaseActivity
import com.gh.common.constant.Config
import com.gh.common.constant.Constants
@ -41,6 +40,7 @@ import java.util.*
class VideoAdapter(val mContext: Context, val mRecyclerView: RecyclerView, val mViewModel: VideoDetailContainerViewModel)
: RecyclerView.Adapter<RecyclerView.ViewHolder>(), IExposable {
var videoList = arrayListOf<VideoEntity>()
var isVisible = false//fragment是否可见
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
val params = RecyclerView.LayoutParams(RecyclerView.LayoutParams.MATCH_PARENT, RecyclerView.LayoutParams.MATCH_PARENT)
@ -107,15 +107,15 @@ class VideoAdapter(val mContext: Context, val mRecyclerView: RecyclerView, val m
videoView.isNeedShowWifiTip = HaloApp.get(Constants.SHOULD_SHOW_VIDEO_MOBILE_WARNING, false) as Boolean?
?: false
if (position == mViewModel.startPosition) {
if (position == mViewModel.startPosition && isVisible) {
if (position + 2 <= videoList.size - 1) {//预加载视频
ExoCacheManager.preload(videoList[position + 1].url)
ExoCacheManager.preload(videoList[position + 2].url)
Picasso.with(context).load(videoList[position + 1].getThumb()).fetch()
Picasso.with(context).load(videoList[position + 2].getThumb()).fetch()
Picasso.with(mContext).load(videoList[position + 1].getThumb()).fetch()
Picasso.with(mContext).load(videoList[position + 2].getThumb()).fetch()
} else if (position + 1 <= videoList.size - 1) {
ExoCacheManager.preload(videoList[position + 1].url)
Picasso.with(context).load(videoList[position + 1].getThumb()).fetch()
Picasso.with(mContext).load(videoList[position + 1].getThumb()).fetch()
}
videoView.startButton.performClick()
LogUtils.uploadVideoStreamingPlaying("开始播放-入口进入", "", mViewModel.path,

View File

@ -150,6 +150,7 @@ class VideoDetailContainerFragment : BaseLazyFragment(), OnBackPressedListener {
mAdapter.videoList = it
if (mIsFirstIn) {
mAdapter.isVisible = isSupportVisible
mViewModel.currentDisplayingVideo = it[mViewModel.startPosition]
recyclerview.scrollToPosition(mViewModel.startPosition)
mIsFirstIn = false