I want to add a pull-to-refresh functionality to the drawer items of a MaterialDrawer instance. Usually one would do this via the support libs SwipeRefreshLayout that already provides this functionality, but I couldn't find a nice way to integrate this into MaterialDrawer.
There is a builder option called withDrawerLayout
, but this function expects a layout that actually has a DrawerLayout as its root element - this obviously won't help in my case.
Does anyone have an example or an idea on how to do this?
This is not possible with versions lower than 5.1.2 of the MaterialDrawer
For your use case I have implemented a change which allows you to overwrite the material_drawer_recycler_view.xml
layout, and to have a an additional view around it.
So to get the SwipeRefreshLayout
do the following:
material_drawer_recycler_view.xml
in your projectadd the 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" />
access the SwipeRefreshLayout
SwipeRefreshLayout srl = (SwipeRefreshLayout) result.getSlider().findViewById(R.id.material_drawer_swipe_refresh);
Now you are able to use it as any other SwipeRefreshLayout