作者taco2548 (T@cO)
看板AndroidDev
標題[問題] RecyclerView內嵌RecyclerView不能點擊
時間Fri Nov 24 22:43:19 2017
今天遭遇這個問題
弄了大半天都弄不好
不知道到底是哪裡出差錯
先上圖
https://i.imgur.com/m3kn4Ue.png
這是我的Item,裡面有另外嵌了一個RecyclerView
現在我想讓整個Item可以點擊,這個部分沒問題
程式碼寫好之後確實可以點擊,有反應
但是點到黃色區塊時卻沒反應...
google了大半天,嘗試了各種查到的方法,就是不能將內部Item蓋過
方法包含在父布局加上
android:descendantFocusability="blocksDescendants"
在子RecyclerView加上
Rv.setClickable(false);
Rv.setPressed(false);
Rv.setEnabled(false);
Rv.setFocusable(false);
請問有大大有相關經驗可以提點一下嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.77.146.170
※ 文章網址: https://webptt.com/m.aspx?n=bbs/AndroidDev/M.1511534603.A.8F8.html
1F:推 zop: 你的意思是,要讓父RV可以點?但是發生有子RV的部份不能點? 11/24 23:15
2F:→ taco2548: 對 11/24 23:15
3F:→ zop: 有一招可以試試看,父RV的item裡面,最外層用RelativeLayout 11/24 23:17
4F:→ zop: 然後首先放上子RV,接著放上一個跟外層一樣大的Linearlayout 11/24 23:18
5F:→ zop: ,這個Linearlayout就會蓋在子RV上,然後在父RV程式碼裡面設 11/24 23:19
6F:→ zop: 定這個Linearlayout可以點擊,試試看。 11/24 23:19
7F:→ taco2548: 行不通QQ 11/24 23:33
8F:→ lnmlee: 不要使用巢狀ListView 這在UX上是扣分的 而且不好處理 11/24 23:34
9F:→ lnmlee: 即使你看到有類似的App有這種操作你也不要模仿 11/24 23:38
10F:→ taco2548: 不然要用什麼方法替代? 11/24 23:42
11F:→ zop: 那反過來,先放linearlayout,然後子RV margin,留邊點擊 11/24 23:48
12F:→ zop: 不然,不要找麻煩了,直接父RV item點了之後換頁顯示子RV 11/24 23:49
13F:→ zop: 攜帶裝置螢幕就那麼大,盡量簡單明瞭比較好 11/24 23:49
14F:→ lnmlee: 我做過這總UI 父層ListView item rootView 是scrollview 11/24 23:58
15F:→ lnmlee: 高度寫死 寬 match_parent 內部LinearLayout 高度 match_p 11/24 23:58
16F:→ lnmlee: arent 寬度動態計算內容長度後寫死 即可實現上下可滑 左右 11/24 23:58
17F:→ lnmlee: 也可滑的效果 但我真的不建議這總作法 11/24 23:58
18F:推 zop: 那個我也做過,是不得已的時候才要那樣 XD,沒辦法,有時候 11/24 23:59
19F:→ zop: 客戶就是要這樣,怎麼解釋都沒用。 11/25 00:00
20F:→ taco2548: 的確這樣寫,可讀性真的變很差QQ,我的子Rv不確定內容 11/25 00:05
21F:→ taco2548: 又想直接呈現給使用者看,所以才要這樣寫 11/25 00:08
22F:推 zop: 查查linearlayout addview,試試看。 11/25 00:12
23F:→ lnmlee: 你給個現實存在 你想模仿的UI 給我們看看 也許並不難搞 11/25 00:15
24F:→ ptthao: 子Rv的內容可以用父Rv覆寫getItemViewType來做嗎@@? 11/26 09:57