staggeredgridlayoutmanager don';在android中刷新后不显示项目

staggeredgridlayoutmanager don';在android中刷新后不显示项目,android,android-recyclerview,layout-manager,Android,Android Recyclerview,Layout Manager,在我的RecyclerView中,我使用StaggeredLayoutManager来显示项目,但当使用RefrefreshLAyout刷新时,但稍后刷新时不显示项目,直到在RecyclerView中滚动,这是代码的一部分 public class NotesListFragment extends Fragment implements SwipeRefreshLayout.OnRefreshListener, OnInternetListener, OnTapInternetDialog

在我的RecyclerView中,我使用StaggeredLayoutManager来显示项目,但当使用RefrefreshLAyout刷新时,但稍后刷新时不显示项目,直到在RecyclerView中滚动,这是代码的一部分

public class NotesListFragment extends Fragment
  implements SwipeRefreshLayout.OnRefreshListener, OnInternetListener, OnTapInternetDialogListener {

  private SwipeRefreshLayout notesListRefreshLayout = null;
  private ListRecyclerView notesListRecyclerView = null;
  private NotesAdapter notesAdapter = null;
  private List<Note> notes = null;

  public NotesListFragment() {
  // Required empty public constructor
  }

  public static NotesListFragment newInstance() {
    NotesListFragment fragment = new NotesListFragment();
    return fragment;
  }

  @Override
  public View onCreateView(LayoutInflater inflater, ViewGroup container,
             Bundle savedInstanceState) {
    return inflater.inflate(R.layout.fragment_notes_list, container, false);
  }

  @Override
  public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
  super.onViewCreated(view, savedInstanceState);
    notesListRefreshLayout = (SwipeRefreshLayout) view.findViewById(R.id.notesListRefreshLayout);
    notesListRefreshLayout.setOnRefreshListener(this);
    notesListRecyclerView = (ListRecyclerView) view.findViewById(R.id.notesListRecyclerView);
    initObjects();
    showNotes(notes);
  }

  private void initObjects() {
    notesListRecyclerView.setHasFixedSize(true);
    if (isTablet) {
      if (((BaseActivityCompat) getActivity()).getOrientationDevice() == OrientationDevice.LANDSCAPE) {
        final StaggeredGridLayoutManager manager = new StaggeredGridLayoutManager(3, StaggeredGridLayoutManager.VERTICAL);
        notesListRecyclerView.setLayoutManager(manager);
        notesListRecyclerView.addItemDecoration(new SpaceGridDecoration(3, 20, true));
      } else {
        final StaggeredGridLayoutManager manager = new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL);
        notesListRecyclerView.setLayoutManager(manager);
        notesListRecyclerView.addItemDecoration(new SpaceGridDecoration(2, 20, true));
      }
    } else {
      final StaggeredGridLayoutManager manager = new StaggeredGridLayoutManager(1, StaggeredGridLayoutManager.VERTICAL);
      notesListRecyclerView.setLayoutManager(manager);
    }
  }

  private void showNotes(List<Note> notes) {
    if (notesAdapter == null) {
      notesAdapter = new NotesAdapter(getContext(), notes, advertising,
      advertisingList, (AppCompatActivity) getActivity(), AdvertisingSection.HOME.getSection());
      notesListRecyclerView.setAdapter(notesAdapter);
      notesAdapter.setOnNoteItemClickListener(onNoteItemClickListener);
      notesAdapter.setOnNoteActionClickListener(onNoteActionClickListener);
    } else {
      notesAdapter.setUpdate(true);
      notesAdapter.refreshAdapter(notes);
      notesListRecyclerView.setAdapter(notesAdapter);
    }
  }

  public void onRefresh() {
    obtainNotesHome(true);
  }
}
public类NotesListFragment扩展了片段
实现SwipeRefreshLayout.OnRefreshListener、OnInternetListener、OnTapInternetDialogListener{
private SwipeRefreshLayout NotesListerFreshLayout=null;
private ListRecyclerView notesListRecyclerView=null;
私有NotesAdapter NotesAdapter=null;
私有列表注释=null;
公共NotesListFragment(){
//必需的空公共构造函数
}
公共静态NotesListFragment newInstance(){
NotesListFragment=新的NotesListFragment();
返回片段;
}
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
返回充气机。充气(R.layout.fragment\u notes\u列表,容器,错误);
}
@凌驾
已创建视图上的公共void(视图,@Nullable Bundle savedInstanceState){
super.onViewCreated(视图,savedInstanceState);
notesListRefreshLayout=(SwiperFreshLayout)view.findViewById(R.id.notesListRefreshLayout);
NotesListerFreshLayout.setOnRefreshListener(此);
NotesListRecycleView=(ListRecycleView)view.findViewById(R.id.NotesListRecycleView);
initObjects();
showNotes(notes);
}
私有void initObjects(){
NotesListerCyclerView.setHasFixedSize(true);
如果(isTablet){
if(((BaseActivityCompat)getActivity()).getOrientationDevice()==OrientationDevice.LANDSCAPE){
最终StaggedGridLayoutManager=新的StaggedGridLayoutManager(3,StaggedGridLayoutManager.VERTICAL);
notesListRecyclerView.setLayoutManager(管理器);
addItemDecoration(新的SpaceGridDecoration(3,20,true));
}否则{
最终StaggedGridLayoutManager=新的StaggedGridLayoutManager(2,StaggedGridLayoutManager.VERTICAL);
notesListRecyclerView.setLayoutManager(管理器);
addItemDecoration(新的SpaceGridDecoration(2,20,true));
}
}否则{
最终StaggedGridLayoutManager=新的StaggedGridLayoutManager(1,StaggedGridLayoutManager.VERTICAL);
notesListRecyclerView.setLayoutManager(管理器);
}
}
私人void showNotes(列表注释){
如果(notesAdapter==null){
notesAdapter=新的notesAdapter(getContext(),注释,广告,
advertisingList,(AppCompatActivity)getActivity(),AdvertisingSection.HOME.getSection();
NotesListerCyclerView.setAdapter(notesAdapter);
setOnNoteItemClickListener(onNoteItemClickListener);
setOnNoteActionClickListener(onNoteActionClickListener);
}否则{
notesAdapter.setUpdate(真);
notesAdapter.refreshAdapter(备注);
NotesListerCyclerView.setAdapter(notesAdapter);
}
}
公共void onRefresh(){
获得noteshome(真);
}
}

稍后,使用RefreshLayout的刷新将实现显示空间null,并且当我使用staggeredlayoutmanager在recyclerview中滚动项目时,将显示该项目。

我认为您的代码没有问题。尝试使用占位符图像。它对我起了作用。

我认为您的代码没有问题。尝试使用占位符图像。这对我很有用。

此片段用于tabhostfragment,当更改tab并返回此片段时,recyclerview不显示包含项的列表,当调试内存中存在的适配器但不显示任何内容时,适配器如何丢失此片段用于tabhostfragment,当更改tab并返回此片段时,recyclerview not show(循环视图不显示)列表包含项,调试适配器时适配器如何丢失,但不显示任何内容