为什么回收视图没有一个ItemClickListener()?

为什么回收视图没有一个ItemClickListener()?

我在探索RecyclerView我很惊讶地看到RecyclerView没有onItemClickListener()..因为RecyclerView延展

android.view.ViewGroup

ListView延展

android.widget.AbsListView

..然而,我通过写作解决了我的问题。onClick在我的RecyclerView.Adapter:

public static class ViewHolder extends RecyclerView.ViewHolder implements OnClickListener {

    public TextView txtViewTitle;
    public ImageView imgViewIcon;

    public ViewHolder(View itemLayoutView) {
        super(itemLayoutView);
        txtViewTitle = (TextView) itemLayoutView.findViewById(R.id.item_title);
        imgViewIcon = (ImageView) itemLayoutView.findViewById(R.id.item_icon);
    }

    @Override
    public void onClick(View v) {

    }}

但我还是想知道为什么谷歌删除了onItemClickListener()?

是性能问题还是其他原因?


莫回无
浏览 387回答 3
3回答

米琪卡哇伊

我喜欢这样,我正在用它内public Adapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType)放View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.view_image_and_text, parent, false);v.setOnClickListener( new MyOnClickListener());并在任何您想要的地方创建这个类。class MyOnClickListener implements View.OnClickListener {     @Override     public void onClick(View v) {        int itemPosition = recyclerView.indexOfChild(v);        Log.e("Clicked and Position is ",String.valueOf(itemPosition));     }}我以前读过,有一个更好的方法,但我喜欢这种方式是容易和不复杂的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java
Android