我想根據 ViewPager2 的位置在包含 ViewPager2 的布局中進行更改。示例 -> 當 ViewPager2 具有最后一項或位置時,我想使按鈕可見。但我不能這樣做,任何幫助和建議都會非常有幫助,謝謝。
我的配接器:
open class ImagesliderAdapter(private val context: Context, private val list: ArrayList<HomePageSlideEntity>, private val viewPager2: ViewPager2): RecyclerView.Adapter<RecyclerView.ViewHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
return MyViewHolder(LayoutInflater.from(context).inflate(R.layout.item_imageslider, parent, false))
}
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
val model = list[position]
if(position==list.size-1) {
viewPager2.post(runnable)
}
if(holder is MyViewHolder) {
holder.itemView.findViewById<ImageView>(R.id.ivimageslider).setImageURI(Uri.parse(model.image))
}
}
override fun getItemCount(): Int {
return list.size
}
private val runnable = Runnable {
list.addAll(list)
notifyDataSetChanged()
}
private class MyViewHolder(view: View): RecyclerView.ViewHolder(view)
}
uj5u.com熱心網友回復:
在registerOnPageChangeCallback你的ViewPager2.
binding.viewPager2.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() {
override fun onPageScrolled(
position: Int,
positionOffset: Float,
positionOffsetPixels: Int
) {
super.onPageScrolled(position, positionOffset, positionOffsetPixels)
Log.d("Page", "onPageScrolled: $position")
}
override fun onPageSelected(position: Int) {
super.onPageSelected(position)
Log.d("Page", "onPageSelected: $position")
// use position and do what ever you want
//for 1st page
if (position <= 0) {
btn.visibility = View.GONE
} else {
btn.visibility = View.VISIBLE
}
//for last page
if (position 1 >= args.content.items.size) {
btn.visibility = View.GONE
} else {
btn.visibility = View.VISIBLE
}
}
override fun onPageScrollStateChanged(state: Int) {
super.onPageScrollStateChanged(state)
}
})
uj5u.com熱心網友回復:
您在配接器中使用 RecyclerView.ViewHolder 而不是 MyViewHolder。將 RecyclerView.ViewHolder 替換為 MyViewHolder,它應該可以正常作業。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/492363.html
標籤:安卓 科特林 安卓布局 android-recyclerview android-viewpager2
