当前位置: 首页 > 知识库问答 >
问题:

回收器视图的项触摸监听器

岳锦
2023-03-14

如何在回收者视图中收听触摸事件?我已经为视图持有者实现了click listener,但它可以在整个视图上工作。我在每个视图支架中都有一个图像视图,当用户单击图像视图时,我需要执行一个操作。

    public class ViewHolder_Custom extends RecyclerView.ViewHolder implements View.OnClickListener {

    private TextView name;
    private ImageView image_path;
    private static ClickListener clickListener_custom;

    public ViewHolder_Custom(View itemView) {
        super(itemView);
        name = (TextView) itemView.findViewById(R.id.name);
        image_path = (ImageView) itemView.findViewById(R.id.image);
        itemView.setOnClickListener(this);
    }

    public TextView getName() {
        return name;
    }


    @Override
    public void onClick(View view) {
        if (clickListener_custom != null) {
            clickListener_custom.itemClick(view, getAdapterPosition());
        }
    }

    public ImageView getImage_path() {
        return image_path;
    }

    public interface ClickListener {
        void itemClick(View v, int position);
    }

    public static void setClickListener(ClickListener clickListener) {
        ViewHolder_Custom.clickListener_custom = clickListener;
    }
}

当前视图持有者代码。

共有1个答案

金兴朝
2023-03-14

由于您希望在单击项目中的每个图像视图时执行操作,因此您可以为每个查看者的图像视图添加onClickListener。根据执行触摸监听器的顺序,您的Imageview的监听器将在监听器添加到viewholder.view.之前执行

 类似资料:
  • 我有一个回收器视图有10个项目。我滚动到页面底部,现在我正尝试为第一个项目调用。当我调用它时,它不会触发第一个项目的。因此,简而言之,我的问题是,当我调用时,其位置没有显示在屏幕上,它是否触发了?。这是我的适配器代码

  • 我很乐意为我的开源库启用触摸反馈。 我创建了一个和一个。包含具有不同操作的不同区域。现在,如果用户点击卡上的任何地方,我很想触发连锁反应,但我无法实现这种行为。 这是我的列表,你也可以在GitHub上找到:https://github.com/mikepenz/AboutLibraries/blob/master/library/src/main/res/layout/listitem_opens

  • 在其他回收器视图中有一个回收器视图。两者都需要垂直滚动。外部回收器视图滚动正常,但内部回收器视图滚动不正常。 这是代码: ViewAdapter如下: 我尝试了以下两种回收商观点,但都无法解决问题 也尝试了这个:

  • 我在滚动视图中有一个回收器视图。我想禁用回收器视图滚动,以便它监听它的父布局,一个ScrollView!

  • 如果用户点击一个,我希望它做一些事情,也为两个和三个。我如何实现这一点?

  • 我正面临一个奇怪的错误,其中recyclerview只显示了一个项目。下面是我的recyclerview适配器的代码: 我已经在其他应用程序中使用了这段代码,它的工作非常完美。我已经检查了聊天数据,这也是完美的。 这里是指向git repo布局文件的链接:布局文件