2015-11-03 56 views
0

我的情況: - 我有一個複雜的項目一個RecyclerView(很多的ImageView,文字..) - 我用4 ImageView的爲4個按鈕(像,評論,分享,不喜歡) - 我想用TouchListener每個按鈕,因爲我想控制動畫,也點擊事件。 (我知道如何爲每個項目使用ClickListener,所以請關注TouchEvent)例如:當您觸摸按鈕,動畫縮放圖標時,NewsFeed上每個Story的Facebook Comment按鈕。單擊事件只是在釋放按鈕後繼續。如何爲recyclerview項目的每個元素添加touch偵聽器。

問題是:我可以通過使用recyclerView.findChildViewUnder(x,y)獲得每個項目的父視圖(例如:LinearLayout包含每個項目的其他組件)。因此如何知道當我們使用clickListener時點擊了哪個按鈕:button1.setClickListener(this); - button2.setClickListener(this); (在查看持有人) 然後在Activity或Fragment中捕獲事件: - switch(view.getId()){ case R.id.button1:.. do something;打破; case R.id.button2:.. do something;打破; .... 我整天谷歌這個問題,但所有的示例和答案只是使用ClickListener像我上面說過的。

謝謝!

+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 




          } 
         }); 
+0

請仔細閱讀我的問題。 –

+0

你想讓聽衆對你的活動或片段做出反應嗎? –

+0

這不是問題。我想要捕獲recyclerView每個項目上每個按鈕的觸摸事件。例如:我觸摸button1,捕捉touchevent(向上移動,向下移動)或gestureListener(onDown,onSingleTabUp,onLongPress ...) –

0

內你得到由

View parent = recyclerView.findChildViewUnder(x,y); 

現在你可以很容易地得到其相應的看法例如父視圖

Button button = (Button)parent.findViewById(R.id.button); 

希望你明白!

+0

@bpAFee,但如果是這樣,你知道我剛碰過哪個按鈕嗎? –

+0

這將從您的父視圖獲得,您通過recyclerView.findChildViewUnder(x,y)獲得; – theLazyFinder

+0

recyclerView.findChildViewUnder(x,y) - >此方法返回綁定視圖,整個項目的父視圖不是精確的子項目 –

相關問題