У меня есть реализация recyclerview внутри recyclerview с вызовом нумерации страниц addOnScrollListner, но он не сработал для дочернего recyclerview.
Вот что я реализую:
class NSREActivity : AppCompatActivity() {
private var previousTotal = 0
private var loading = true
private val visibleThreshold = 5
private var firstVisibleItem = 0
private var visibleItemCount = 0
private var totalItemCount = 0
private lateinit var mAdapter: RecyclerGenericKAdapter<HashTags>
private var mList: ArrayList<HashTags> = ArrayList()
private var mChildList: ArrayList<HashTags> = ArrayList()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_nsre)
initData()
//Usage of generic recycler view
mAdapter = RecyclerGenericKAdapter(mList, R.layout.item_layout, object : RecyclerKallback<HashTags> {
override fun bindData(model: HashTags, position: Int, itemView: View) {
val name = itemView.findViewById<TextView>(R.id.mainName)
val childRv = itemView.findViewById<RecyclerView>(R.id.childRecycler)
name.text = model.tag
itemView.setOnClickListener {
Toast.makeText(this@NSREActivity, model.tag, Toast.LENGTH_SHORT).show()
setChildAdapter(childRv)
}
}
})
recyclerMain.layoutManager = LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false)
recyclerMain.adapter = mAdapter
}
private fun setChildAdapter(child : RecyclerView){
val adt = RecyclerGenericKAdapter(mChildList, R.layout.item_sample_rv, object : RecyclerKallback<HashTags> {
override fun bindData(model: HashTags, position: Int, itemView: View) {
val name = itemView.findViewById<TextView>(R.id.text)
name.text = model.tag
itemView.setOnClickListener {
Toast.makeText(this@NSREActivity, model.tag, Toast.LENGTH_SHORT).show()
}
}
})
val mLayoutManager = LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false)
child.layoutManager = mLayoutManager
child.adapter = adt
child.addOnScrollListener(object : RecyclerView.OnScrollListener() {
override fun onScrolled(recyclerView: RecyclerView?, dx: Int, dy: Int) {
super.onScrolled(recyclerView, dx, dy)
visibleItemCount = child.childCount
totalItemCount = mLayoutManager.itemCount
firstVisibleItem = mLayoutManager.findFirstVisibleItemPosition()
if (loading) {
if (totalItemCount > previousTotal) {
loading = false
previousTotal = totalItemCount
}
}
if (!loading && totalItemCount - visibleItemCount <= firstVisibleItem + visibleThreshold) {
// End has been reached
Log.e("Yaeye!", "end called")
// Do something
addData()
loading = true
}
}
})
}
}
У меня есть реализация recyclerview внутриВторичный просмотр с вызовом разбиения на страницы addOnScrollListner, но он не сработал для дочернего просмотра повторного просмотра.когда он достигнет последнего индекса основного просмотрщика, тогда он вызовет addOnScrollListner для дочернего просмотра.
Как вызвать обзор переработчика внутри просмотра переработчика с нумерацией страниц?