如何为recyclerview项的每个元素添加触摸侦听器。

时间:2015-11-03 09:31:21

标签: android android-recyclerview touch-event

我的情况:   - 我有一个带有复杂项目的RecyclerView(很多ImageView,文本..)   - 我使用4个ImageView作为4个按钮(喜欢,评论,分享,不喜欢)   - 我想为每个按钮使用TouchListener,因为我想控制动画,也点击事件。 (我知道如何为每个项目使用ClickListener,因此请关注TouchEvent)示例:NewsFeed上每个Story的Facebook评论按钮,当您触摸按钮时,动画比例图标。点击事件只需在释放按钮后继续。

问题是:我只能通过使用recyclerView.findChildViewUnder(x,y)获取每个项目的父视图(例如:LinearLayout包含每个项目的其他组件)。

那么如何知道在使用clickListener时点击了哪个按钮: - button1.setClickListener(this); - button2.setClickListener(this); (在View Holder上) 在活动或片段中的捕获事件之后: - switch(view.getId()){ 案例R.id.button1:......做点什么;打破; 案例R.id.button2:......做点什么;打破; .... 我整天都在谷歌这个问题,但所有的样本和回答都只是使用了ClickListener,就像我上面说的那样。

谢谢!

2 个答案:

答案 0 :(得分:0)

内部的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




                            }
                        });

答案 1 :(得分:0)

您可以通过

获得父视图
TRY…CATCH Block

现在您可以轻松获得相应的视图,例如

BEGIN TRY
--your query
END TRY
BEGIN CATCH
SELECT  ERROR_MESSAGE()
END CATCH

希望你明白!!!