Android 如何为recyclerview项的每个元素添加触摸侦听器。
我的情况是: -我有一个包含复杂项目的RecyclerView(许多图像视图、文本…) -我使用4个ImageView作为4个按钮(喜欢、评论、共享、不喜欢) -我想对每个按钮使用TouchListener,因为我想控制动画,还需要单击事件。(我知道如何为每个项目使用ClickListener,所以请关注TouchEvent)例如:新闻提要上每个故事的Facebook评论按钮,当您触摸按钮时,动画缩放图标。单击事件,释放按钮后继续Android 如何为recyclerview项的每个元素添加触摸侦听器。,android,android-recyclerview,touch-event,Android,Android Recyclerview,Touch Event,我的情况是: -我有一个包含复杂项目的RecyclerView(许多图像视图、文本…) -我使用4个ImageView作为4个按钮(喜欢、评论、共享、不喜欢) -我想对每个按钮使用TouchListener,因为我想控制动画,还需要单击事件。(我知道如何为每个项目使用ClickListener,所以请关注TouchEvent)例如:新闻提要上每个故事的Facebook评论按钮,当您触摸按钮时,动画缩放图标。单击事件,释放按钮后继续 问题是:通过使用recyclerView.findChildVi
问题是:通过使用recyclerView.findChildViewUnder(x,y),我只能获得每个项目的父视图(例如:LinearLayout包含每个项目的其他组件) 因此,如何知道在使用clickListener时单击了哪个按钮: -按钮1.设置ClickListener(此); -按钮2.设置ClickListener(此);(在视图持有人上) 在活动或片段中的捕获事件之后: -开关(view.getId()){ 案例R.id.button1:…做点什么;打破; 案例R.id.按钮2:……做点什么;打破; .... 我整天都在谷歌上搜索这个问题,但所有的样本和答案都像我上面说的那样使用ClickListener
谢谢!像这样使用内置的recyclerview适配器
@Override
public void onBindViewHolder(final RecyclerViewAdapterA.ViewHolder_a holder, final int position) {
holder.button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
您可以通过获取父视图
View parent = recyclerView.findChildViewUnder(x,y);
现在您可以很容易地获得其相应的视图,例如
Button button = (Button)parent.findViewById(R.id.button);
希望你能理解!!!请发布你的适配器代码。你想让监听器对你的活动或片段做出反应,对吗?这没问题。我想捕捉每项recyclerView上每个按钮的触摸事件。例如:我触摸按钮1,捕捉触摸事件(上移,下移)或手势监听器(onDown,onSingleTabUp,onLongPress…)@bpAFee,但如果是这样的话,你知道我刚才按了哪个按钮吗?那将是从你的父视图中得到的,你可以通过RecycleView.FindChildViewEnder(x,y);RecycleView.FindChildViewEnder(x,y)->这个方法返回绑定视图,整个项目的父视图不是确切的子项目