Fast taps (clicks) on RecyclerView opens multiple Fragments

前端 未结 10 905
渐次进展
渐次进展 2021-02-02 13:37

I have implemented onClick listener to my ViewHolder for my RecyclerView

But when I perform very fast double taps or mouse clicks, it performs the task (opens a seperate

10条回答
  •  借酒劲吻你
    2021-02-02 14:00

    This is a very annoying behavior. I have to use an extra flag to prevent this in my work.

    public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
    TextView tvTitle, tvDescription;
    private boolean clicked;
    
    public ViewHolder(View itemView) {
        super(itemView);
        itemView.setClickable(true);
        itemView.setOnClickListener(this);
    
        tvTitle = (TextView) itemView.findViewById(R.id.tv_title);
        tvDescription = (TextView) itemView.findViewById(R.id.tv_description);
    }
    
    @Override
    public void onClick(View v) {
        if(clicked){
            return;
        }
        clicked = true;
        v.postDelay(new Runnable(){
              @Override
              public void run(View v){
                  clicked = false;
              }
        },500);
        mListener.onClick(FRAGMENT_VIEW, getAdapterPosition()); // open FRAGMENT_VIEW
    }
    }
    

提交回复
热议问题