我在片段中使用Firebase UI和Recycler View。
创建片段时,回收者视图会从Firestore加载所有信息,但是一旦锁定和解锁手机,它就会消失。
一旦我增加了片段布局,我就会这样做:
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState)
{
this.view = view; //View of the fragment
setupRecyclerView(); // Get the recycler
loadData(); //Loads data into the recycler
}
这是我从膨胀的布局中获得回收站视图的方法:
public void setupRecyclerView(){
//Recycler
recyclerView = view.findViewById(R.id.recyclerView);
}
这是方法“ loadData”:
public void loadData(){
//Query
Query query = fStore.collection("users");
//RecyclerOptions
FirestoreRecyclerOptions<User> options = new FirestoreRecyclerOptions.Builder<User>()
.setQuery(query, User.class)
.build();
//RecyclerAdapter
adapter = new FirestoreRecyclerAdapter<User, UserViewHolder>(options)
{
@NonNull
@Override
public UserViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType)
{
System.out.println("view holder");
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_single_file, parent, false);
return new UserViewHolder(view);
}
@Override
protected void onBindViewHolder(@NonNull UserViewHolder holder, int position, @NonNull User model)
{
holder.listName.setText(model.getName());
}
};
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
recyclerView.setAdapter(adapter);
}
生命周期:
@Override
public void onStart()
{
super.onStart();
System.out.println("Started");
adapter.startListening();
}
@Override
public void onStop()
{
super.onStop();
System.out.println("Stopped");
adapter.stopListening();
}
@Override
public void onResume()
{
super.onResume();
adapter.startListening();
}
我也尝试在onResume循环上加载Data,即使重新启动应用程序也无法正常工作。 我很确定,如果我去参加其他活动并回到这一点,也会一样。
问题:为什么RecyclerView不会再次加载这些项目?我想念什么?