2015-04-29 56 views
4

我正在使用recyclerview並在我的佈局上有FAB。 我希望能夠在最後一項的底部留出一點空間,就像Gmail應用程序所做的那樣,當您滾動到底部時,底部項目上的右側星形仍然可點擊。Recyclerview滾動過去FAB

我試着在底部添加一些填充來實現這個效果,但是滾動條並沒有一直滾動到底部,而停留在填充高度,而Gmail版本則是這樣。有沒有人有任何想法如何做到這一點?

<RecyclerView 
    android:id="@+id/list" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:clipToPadding="false" 
    android:paddingBottom="90dp" 
    android:scrollbars="vertical" /> 
+0

在沒有任何東西可見的列表項的最後位置添加一個額外的視圖! – Harry

回答

5

,你必須在你的適配器的末尾添加 「腳註」。這個頁腳將只是一個空白的視圖,如android.widget.Space

recycler視圖沒有用於頁眉頁腳的任何原生選項,但是您可以在Google中找到幾個選項。

我開發了一個庫,有頁眉/頁腳/部分選項回收視圖演員:

我沒有把它上傳尚未Maven的,但你可以抓住這裏的代碼:https://github.com/eyeem/RecyclerViewTools

然後使用就是:

WrapAdapter wrapAdapter = new WrapAdapter(adapter); 
wrapAdapter.addFooter(inflater.inflate(R.layout.footer, recycler, false)); 
recycler.setAdapter(wrapAdapter); 
+0

看起來完美的感謝,我沒有想過調整適配器,而不是視圖..現在明顯。偉大的一點lib btw。 – CodeChimp

+0

@CodeChimp只要確保測試它很好,因爲它是一個非常新的庫,可能會在邊緣粗糙。 (如果發現錯誤,請報告) – Budius

+0

我可能只是採取相關措施,並將其納入我自己的客戶適配器中以解決此即時問題,但如果我發現任何問題,我們會作出反饋。 – CodeChimp

-1

使用它

android:layout_marginBottom = "80dp" 
+0

這隻會將整個視圖放在活動底部以上80dp。我需要根據Gmail的最後一項底部的填充。 – CodeChimp

+0

a,現在明白了。所以你應該讓你的自定義滾動視圖像這樣http://stackoverflow.com/questions/10316743/detect-end-of-scrollview。並聽取滾動爲結束,然後用動畫顯示您的FAB –

1

添加一個頁腳最簡單的方法是設置具有usesFooter()標誌自定義適配器,並加1的行數,如果它是真實的(或隨時添加一個,如果它不」 t需要被其他東西添加)。然後在onCreateViewHolder()檢查以查看該位置是否是列表中的最後一個,並且使用要添加的填充高度(例如80dp)來填充空白視圖

如果在此位置處onBindViewHolder(),因爲它是一個空的視圖,不應該需要更新其數據。

+0

謝謝@Budius給出了一個更成功的例子,但你們都給了我進入的方向。 – CodeChimp