我在StaggeredGridview
内有SwipeRefreshLayout
,当我使用滑动操作刷新网格时,即使我的列表不为空(数据),它也会变空。
如果我使用LinearLayoutManager
代替StaggeredGridLayoutManager
,一切正常(我得到listView
而不是staggeredgrid)。当我再次将LinearLayoutManager
更改为StaggeredGridLayoutManager
时,视图在刷新时变为空白
这就是我将LinearLayoutManager
和StaggeredGridLayoutManager
设置为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>
答案 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();