2016-03-09 52 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