2

由於有些日子,我正在計算如何將點擊事件委託給位於另一個視圖之下的視圖。重要的是,疊加視圖仍然需要接收點擊事件。如何獲取視圖下的一個視圖的點擊事件android

情況是這樣的:

我有一個RecyclerView項目。 RecyclerView採用全寬度,每邊都有填充,所以overscroll動畫在整個寬度上均勻分佈。 而且我有一個工具欄,在RecyclerView(擴展樣式)下面。工具欄在窗口的右上邊緣有一個菜單項。

現在我不會收到此菜單項上的任何點擊事件,因爲RecyclerView與項目重疊。但是如果我考慮填充物,RecyclerView的項目不會與菜單項重疊。但是由於填充沒有邊距,因此RecyclerView無形地重疊了菜單項。但我討厭將填充改爲邊距,因爲那樣會在兩側(左側和右側)切割超捲動畫。

你有什麼建議可以將超捲動畫擴展爲全寬,或者我可以通過我的RecyclerView的填充來委託點擊事件?

任何幫助表示讚賞。謝謝。

+0

您是否發現該解決方案請幫助m卡住10天以上。 – 2017-07-14 15:23:04

+0

我知道我遲到了,但最終我改變了整個佈局。此外,您還可以重寫觸摸事件,以便回收站不再響應觸摸事件。 [https://stackoverflow.com/questions/18520072/make-invisible-view-handle-touches-as-action-outside](https://stackoverflow.com/questions/18520072/make-invisible-view-handle-觸摸-AS - 動作 - 外)。然而,這是相當複雜的,我建議你改變你的設計,使其沒有硬核方法。 – binloan 2017-08-11 07:19:02

+0

看到下面的答案可能會被別人騙過。 – 2017-08-11 07:30:27

回答

0

這適用於我。

mRecyclerView.setOnTouchListener((v, event) -> { 
      MotionEvent e = MotionEvent.obtain(event); 
      mHeaderLayout.dispatchTouchEvent(e); 
      e.recycle(); 
      return false; 
     }); 
相關問題