2015-09-16 17 views
3

我使用LinearLayoutManager來創建水平對齊的RecyclerView。由於我正在繪製項目的邊界,所以在滾動期間,來自外部左側和右側鄰居的重疊圖形消失,因爲視圖被回收。防止RecyclerView中的直接鄰居被分離和回收

有沒有辦法指示Adapter或LayoutManager始終保持x + 2的意見?

我預計RecyclerView.setItemViewCacheSize(int size)爲我解決這個問題,但這些意見似乎仍然是分開的。

+0

適配器將數據轉化視圖。它不會選擇何時或哪些視圖在任何時候都可見。一個項目是否與下一個項目重疊?你的觀點是否有可能超越界限?也許一個圖像會有所幫助。 – Andy

+0

是的,它們是重疊的。每個項目包含寬度爲125%的「視圖」。這個視圖用於繪製背景的目的,一個箭頭形式的'ShapeDrawable'。理想的佈局與此截圖中的麪包屑相媲美。http://designmodo.com/wp-content/uploads/2012/06/622.jpg – Taig

+0

沒關係,我找到了一個簡單的視覺技巧來解決我的具體問題。不過,我會留下這個問題。有一些有效的用例可以控制這種行爲,這將有助於我的問題得到更清晰的解決。 – Taig

回答

0

使用LinearLayoutManager時,您無法在RecyclerView的範圍之外繪製邊界,並期望視圖在邊界離開RecyclerView邊界後繼續繪製。

你應該更好地說出你的問題。您提供的細節很少,希望有人幫助您解決不適當的解決方案。

除了視圖0之外,您應該在每個視圖之前添加RecyclerView.ItemDecorationhttps://gist.github.com/alexfu/0f464fc3742f134ccd1e

爲什麼在每個視圖前添加分隔線?因爲那麼當我們添加/刪除麪包屑時,我們不需要在後面的分隔符之間來回切換最後的視圖。這是更少的工作和更好的表現。

0

這不回答「保持N + 1次附加問題」,而是抽出RecyclerView的邊界

拉出界的相同效果的非常問題可以這樣獲得。

使RecyclerView和其他重疊視圖真實重疊(通過將它們保留在RelativeLayout中的同一空間中,而不是通過clipChildren = false執行此操作,這僅僅是一種視覺錯覺)。

爲與RecyclerView的其他重疊視圖分配相同大小的標題視圖(或頁腳取決於其他視圖是在頂部還是底部)。

(上添加標頭視圖RecyclerView header and footer