Итак, я работаю над приложением, которое отображает пользователю список проектов, над которыми он работает.Я использую firebase firestore и firestorerecycleradapter для отображения списка в обзоре переработчика.Вторичное представление не заполняется, пока я не поместил приложение в фоновый режим и не открою его снова.После того, как я изменил фрагмент в макете вкладки, окно повторного просмотра снова исчезло.Моя система работает так, что она сопоставляет идентификатор доступа пользователя с идентификатором проектов и отображает их.
Большинство людей, столкнувшихся с такой же проблемой, пытались удалить строку hasfixedsize (true) из кода.Но у меня это не сработало.
Вот метод OnCreateView
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_projects, container, false);
user = mAuth.getCurrentUser();
recyclerView = view.findViewById(R.id.projectsrv);
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
FirebaseApp.initializeApp(getContext());
if (isDesignerCodeChanged() && user != null) {
Query query = db.collection("projects")
.whereEqualTo("AccessID", AccessID);
FirestoreRecyclerOptions<Projectsdata> options = new FirestoreRecyclerOptions.Builder<Projectsdata>()
.setQuery(query, Projectsdata.class)
.build();
firestoreRecyclerAdapter = new FirestoreRecyclerAdapter(options);
firestoreRecyclerAdapter.notifyDataSetChanged();
recyclerView.setAdapter(firestoreRecyclerAdapter);
return view;
}
// recyclerView.setAdapter(firestoreRecyclerAdapter);
// firestoreRecyclerAdapter.setOnItemClickListener(this);
return view;
}
Метод OnStart
@Override
public void onStart() {
super.onStart();
if (isDesignerCodeChanged() && user != null) {
Query query = db.collection("projects")
.whereEqualTo("AccessID", AccessID);
FirestoreRecyclerOptions<Projectsdata> options = new FirestoreRecyclerOptions.Builder<Projectsdata>()
.setQuery(query, Projectsdata.class)
.build();
firestoreRecyclerAdapter = new FirestoreRecyclerAdapter(options);
recyclerView.setAdapter(firestoreRecyclerAdapter);
}
firestoreRecyclerAdapter.startListening();
}
Метод OnStop
@Override
public void onStop() {
super.onStop();
Query query = db.collection("projects")
.whereEqualTo("AccessID", AccessID);
FirestoreRecyclerOptions<Projectsdata> options = new FirestoreRecyclerOptions.Builder<Projectsdata>()
.setQuery(query, Projectsdata.class)
.build();
firestoreRecyclerAdapter = new FirestoreRecyclerAdapter(options);
recyclerView.setAdapter(firestoreRecyclerAdapter);
firestoreRecyclerAdapter.stopListening();
}
Метод OnCreate
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mAuth = FirebaseAuth.getInstance();
user = mAuth.getCurrentUser();
db = FirebaseFirestore.getInstance();
}
Я проверил logcat и нашел эту строку: 2019-05-22 22: 40: 44.007 7073-7073 / com.example.hellovorld E / RecyclerView: адаптер не подключен;пропускающий макет