Android Kotlin NestedScrollView 嵌套 RecyclerView 禁止上下滑动详细代码
以下是一个示例代码,演示了如何使用嵌套的RecyclerView和NestedScrollView,并在RecyclerView上设置OnTouchListener来禁止上下滑动:
import android.os.Bundle
import android.view.MotionEvent
import android.view.View
import androidx.appcompat.app.AppCompatActivity
import androidx.core.widget.NestedScrollView
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
class MainActivity : AppCompatActivity() {
private lateinit var nestedScrollView: NestedScrollView
private lateinit var recyclerView: RecyclerView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
nestedScrollView = findViewById(R.id.nestedScrollView)
recyclerView = findViewById(R.id.recyclerView)
// 设置NestedScrollView的嵌套滚动模式
nestedScrollView.isNestedScrollingEnabled = true
// 创建和设置RecyclerView的适配器
val adapter = MyAdapter()
recyclerView.adapter = adapter
recyclerView.layoutManager = LinearLayoutManager(this)
// 设置RecyclerView的OnTouchListener来禁止上下滑动
recyclerView.setOnTouchListener(object : View.OnTouchListener {
override fun onTouch(v: View?, event: MotionEvent?): Boolean {
when (event?.action) {
MotionEvent.ACTION_MOVE -> return true // 禁止滑动
}
return false
}
})
}
}
class MyAdapter : RecyclerView.Adapter<MyViewHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder {
val view = LayoutInflater.from(parent.context).inflate(R.layout.item_layout, parent, false)
return MyViewHolder(view)
}
override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
// 绑定数据
}
override fun getItemCount(): Int {
return 10
}
}
class MyViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
// ViewHolder代码
}
在上面的代码中,我们在Activity的布局文件中包含了一个NestedScrollView和一个RecyclerView。我们使用LinearLayoutManager来设置RecyclerView的布局管理器,并设置RecyclerView的适配器。
然后,我们在RecyclerView上设置了一个OnTouchListener,当用户滑动RecyclerView时,我们检测到MotionEvent.ACTION_MOVE事件,并返回true,从而禁止了上下滑动。
请注意,代码中的布局文件中的NestedScrollView和RecyclerView的id需要与代码中的id匹配。
原文地址: http://www.cveoy.top/t/topic/4ua 著作权归作者所有。请勿转载和采集!