Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android ItemTouchHelper.Callback仅移动一行_Android_Kotlin_Android Recyclerview - Fatal编程技术网

Android ItemTouchHelper.Callback仅移动一行

Android ItemTouchHelper.Callback仅移动一行,android,kotlin,android-recyclerview,Android,Kotlin,Android Recyclerview,我正试图在安卓系统中实现“刷换动作” 当用户刷卡时,它将只移动一行。我发现,如果我在适配器中添加getItemViewType(),就会发生这种情况,但如果我不添加getItemViewType(),数据就会混乱。我怎样才能修好它 适配器: class ChooseFileAdapter(presenter: ChooseFilePresenter) : RecyclerView.Adapter<ChooseFileAdapter.ViewHolder>() { var presen

我正试图在安卓系统中实现“刷换动作”

当用户刷卡时,它将只移动一行。我发现,如果我在适配器中添加getItemViewType(),就会发生这种情况,但如果我不添加getItemViewType(),数据就会混乱。我怎样才能修好它

适配器:

class ChooseFileAdapter(presenter: ChooseFilePresenter) : RecyclerView.Adapter<ChooseFileAdapter.ViewHolder>() {
var presenter = presenter;
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
    val v = LayoutInflater.from(parent.context).inflate(R.layout.item_title, parent, false)
    return ViewHolder(v)
}

override fun onBindViewHolder(holder: ViewHolder, position: Int) {
    val viewType = getItemViewType(position)
    holder.fileTitle.text = allList.get(position).title

    holder.itemView.setOnClickListener {
        presenter?.editFilePage(allList.get(position))
    }
}

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

inner class ViewHolder(v: View) : RecyclerView.ViewHolder(v) {
    val fileTitle: TextView = v.findViewById(R.id.fileTitle)
    val imageView: ImageView = v.findViewById(R.id.imageView)
}

fun update(modelList: ArrayList<NotesEntity>){
    allList = modelList
    this!!.notifyDataSetChanged()
}

override fun getItemId(position: Int): Long {
    return allList.get(position).id.toLong()
}

override fun getItemViewType(position: Int): Int {
    return position
}
class ChooseFileAdapter(演示者:ChooseFilePresenter):RecyclerView.Adapter(){
var presenter=演示者;
override onCreateViewHolder(父级:ViewGroup,viewType:Int):ViewHolder{
val v=LayoutFlater.from(父项上下文)。充气(R.layout.item_标题,父项,false)
返回视窗支架(v)
}
覆盖BindViewHolder(holder:ViewHolder,位置:Int){
val viewType=getItemViewType(位置)
holder.fileTitle.text=allList.get(position).title
holder.itemView.setOnClickListener{
演示者?.editFilePage(allList.get(位置))
}
}
重写getItemCount():Int{
返回allList.size
}
内部类ViewHolder(v:视图):RecyclerView.ViewHolder(v){
val fileTitle:TextView=v.findviewbyd(R.id.fileTitle)
val imageView:imageView=v.findViewById(R.id.imageView)
}
趣味更新(模型列表:ArrayList){
allList=modelList
此!!.notifyDataSetChanged()
}
覆盖getItemId(位置:Int):长{
返回allList.get(position.id.toLong()
}
覆盖getItemViewType(位置:Int):Int{
返回位置
}
}