Compare commits

...

1 Commits

2 changed files with 13 additions and 3 deletions

View File

@ -9,6 +9,7 @@ import android.widget.ImageView
import android.widget.LinearLayout
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import androidx.recyclerview.widget.RecyclerView.RecycledViewPool
import androidx.recyclerview.widget.RecyclerView.ViewHolder
import com.gh.common.constant.Config
import com.gh.common.databind.BindingAdapters
@ -95,6 +96,10 @@ class GameFragmentAdapter(
private var mTopViewExposureEventList: ArrayList<ExposureEvent>? = null
private val mHorizontalSlideRecycledViewPool by lazy {
RecycledViewPool()
}
fun setItemDataList(itemDataList: MutableList<GameItemData>) {
val currentSize = mItemDataList.size
mItemDataList = itemDataList.toMutableList()
@ -574,7 +579,8 @@ class GameFragmentAdapter(
private fun bindGameHorizontalSlideListView(holder: GameHorizontalSlideListViewHolder, position: Int) {
val subjectEntity = mItemDataList[position].horizontalSlide
val subjectAdapter = holder.bindHorizontalSlideList(subjectEntity!!, mViewModel)
val subjectAdapter =
holder.bindHorizontalSlideList(subjectEntity!!, mViewModel, mHorizontalSlideRecycledViewPool)
subjectEntity.data?.let {
val positionOffset = subjectAdapter.getIndex()

View File

@ -4,8 +4,8 @@ import android.view.View
import android.view.ViewGroup
import androidx.constraintlayout.widget.ConstraintLayout
import androidx.recyclerview.widget.DefaultItemAnimator
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import androidx.recyclerview.widget.RecyclerView.RecycledViewPool
import com.gh.gamecenter.common.base.BaseRecyclerViewHolder
import com.gh.gamecenter.core.iinterface.IOffsetable
import com.gh.gamecenter.core.utils.TimeUtils
@ -26,7 +26,8 @@ class GameHorizontalSlideListViewHolder(val binding: GameHorizontalListBinding)
fun bindHorizontalSlideList(
subjectEntity: SubjectEntity,
offsetable: IOffsetable
offsetable: IOffsetable,
recycledViewPool: RecycledViewPool? = null
): GameHorizontalSlideAdapter {
val context = binding.root.context
var subjectAdapter = binding.recyclerView.adapter
@ -40,6 +41,9 @@ class GameHorizontalSlideListViewHolder(val binding: GameHorizontalListBinding)
binding.recyclerView.adapter = subjectAdapter
binding.recyclerView.setScrollingTouchSlop(RecyclerView.TOUCH_SLOP_PAGING)
binding.recyclerView.isNestedScrollingEnabled = false
if (recycledViewPool != null) {
binding.recyclerView.setRecycledViewPool(recycledViewPool)
}
if (subjectEntity.data?.firstOrNull()?.test?.testTime != null && mLastScrolledPosition == 0) {
scrollToSpecificItemForTheFirstTime(subjectEntity)