gpt4 book ai didi

android - 如何在RecyclerView Adapter中实现自定义ViewGroup

转载 作者:行者123 更新时间:2023-11-29 00:52:56 25 4
gpt4 key购买 nike

我正在使用CarouselView库在RecyclerView中显示图像。
我创建了一个使用此PhotoView库的自定义视图,以使图像可缩放。

我需要实现一个自定义的ViewGoup类,在here中进行了解释。我不知道在哪里更改我的RecyclerView适配器,以使用我的CustomViewGroup而不是默认的ViewGroup

我的ViewGroup类看起来像所示

class MyViewGroup(context: Context) : ViewGroup(context) {
override fun onLayout(changed: Boolean, l: Int, t: Int, r: Int, b: Int) {}

override fun onInterceptTouchEvent(ev: MotionEvent): Boolean {
try {
return super.onInterceptTouchEvent(ev)
} catch (e: IllegalArgumentException) {
e.printStackTrace()
return false
}

}
}


这是我的recyclerview适配器

class MyAdapter(
var dataset: MutableList<Upload> = mutableListOf(),
var context: Context?
) : RecyclerView.Adapter<MyAdapter.ViewHolder>() {

class ViewHolder(val layout: RelativeLayout) : RecyclerView.ViewHolder(layout)

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
val cont = LayoutInflater.from(parent.context)
.inflate(R.layout.my_item, parent, false) as RelativeLayout
return ViewHolder(cont)
}


override fun onBindViewHolder(holder: ViewHolder, position: Int) {}

override fun getItemCount(): Int {
return dataset.size
}
}

最佳答案

您必须使用以下代码:

class MyCarouselView(context: Context, a: AttributeSet) : CarouselView(context, a) {

override fun onInterceptTouchEvent(ev: MotionEvent): Boolean {
try {
return super.onTouchEvent(ev)
} catch (ex: Exception) {
return false
}


}

override fun onTouchEvent(ev: MotionEvent): Boolean {
try {
return super.onTouchEvent(ev)
} catch (ex: Exception) {
return false
}


}

override fun dispatchTouchEvent(ev: MotionEvent?): Boolean {
try {
return super.dispatchTouchEvent(ev)
} catch (ex: Exception) {
return false
}
}
}

关于android - 如何在RecyclerView Adapter中实现自定义ViewGroup,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57710182/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com