我正在使用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
}
}
答案 0 :(得分:1)
您必须使用以下代码:
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
}
}
}