2016-03-09 55 views
0

我想爲MaterialDrawer實例的抽屜項目添加拉到刷新功能。通常可以通過已經提供這種功能的支持庫SwipeRefreshLayout來做到這一點,但是我找不到一種很好的方式將它集成到MaterialDrawer中。如何將SwipeRefreshLayout功能添加到MaterialDrawer

有一個叫withDrawerLayout一個建設者的選擇,但該功能預計,實際上有一個DrawerLayout作爲其根元素的佈局 - 這顯然不會在我的情況有所幫助。

有沒有人有如何做到這一點的例子或想法?

+0

你也有你的抽屜一個頭?你必須記住SwipeRefreshLayout將是抽屜的整個高度,並顯示重新加載的頂部。 – mikepenz

+0

是的,這是我期望的妥協,我願意接受 - 實際上,刷新機制不僅會刷新菜單項,還會刷新標題圖像和應用程序顏色等其他內容,所以並非如此把整個事情拉下來。 – Strayer

回答

1

這是不可能的版本比的MaterialDrawer

5.1.2降低您的使用情況下,我實現了一個變化,它允許您覆蓋material_drawer_recycler_view.xml佈局,並且周圍有一個額外的視圖。

因此得到SwipeRefreshLayout做到以下幾點:

  1. 更新到MaterialDrawer V5.1.2
  2. 創建一個在您的項目稱爲material_drawer_recycler_view.xml佈局
  3. 添加SwipeRefreshLayout

    <android.support.v7.widget.RecyclerView 
        android:id="@+id/material_drawer_recycler_view" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:scrollbars="vertical" /> 
    

  4. 訪問SwipeRefreshLayout

    SwipeRefreshLayout SRL =(SwipeRefreshLayout)result.getSlider()findViewById(R.id.material_drawer_swipe_refresh)。

現在你可以使用它像任何其他SwipeRefreshLayout

+0

邁克,謝謝!不想再次濫用問題跟蹤器的問題,在StackOverflow上沒有期待這樣一個快速的解決方案:)由於假期,直到下個月才能實現這一點,但這是我的待辦事項名單。 – Strayer

+0

好吧;)。沒問題。你很幸運,我檢查了「materialdrawer」標籤;) – mikepenz