swiperefreshlayout内的Staggeredgridview在刷卡刷新时变为空

时间:2017-07-11 20:12:35

标签: android staggered-gridview staggeredgridlayout

我在StaggeredGridview内有SwipeRefreshLayout,当我使用滑动操作刷新网格时,即使我的列表不为空(数据),它也会变空。 如果我使用LinearLayoutManager代替StaggeredGridLayoutManager,一切正常(我得到listView而不是staggeredgrid)。当我再次将LinearLayoutManager更改为StaggeredGridLayoutManager时,视图在刷新时变为空白

这就是我将LinearLayoutManagerStaggeredGridLayoutManager设置为recyclerView

的方式
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity());
        recyclerView.addItemDecoration(new VerticalDividerItemDecoration(getActivity(), R.drawable.divider_discover));
        recyclerView.setLayoutManager(linearLayoutManager);

StaggeredGridLayoutManager stgaggeredGridLayoutManager = new StaggeredGridLayoutManager(2, OrientationHelper.VERTICAL);
        recyclerView.setLayoutManager(stgaggeredGridLayoutManager);

感谢任何帮助。提前谢谢。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <android.support.v4.widget.SwipeRefreshLayout
            android:id="@+id/swipe_refresh"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

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

    </FrameLayout>

    <TextView
        android:id="@+id/tv_empty"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="@string/list_empty"
        android:textSize="20sp"
        android:visibility="gone" />

</RelativeLayout>

1 个答案:

答案 0 :(得分:0)

我使用

解决了我的问题

在notifyDataSetChanged()之前重新附加布局管理器

                    recy_latest.setHasFixedSize(true);
                    layoutManager = new StaggeredGridLayoutManager(InitApplication.getLayoutCount(),StaggeredGridLayoutManager.VERTICAL);
                    recy_latest.setLayoutManager(layoutManager);
                    recy_latest.setItemAnimator(new DefaultItemAnimator());
                    wallpaperAdapter.notifyDataSetChanged();