когда я ненадолго перехожу к действию и снова возвращаюсь к фрагменту ... все хорошо, .orderBy
во фрагменте работает отлично, РАСХОДЯЩАЯ и .limit(5)
загрузка 10 фотографий работает, да, 10 фотографий. Но пока я не перейду на home fragment
с помощью Bottom Navigation, я снова вернусь к profile fragment
, что произойдет .. orderBy
в profile fragment
станет Восходящим и не будет работать как первый и загрузит только 5 фотографий. а затем я пытаюсь перейти к activity
и обратно к profile fragment
.. orderBy
и .limit
работает хорошо, спускается и загружает 10 фотографий отлично, 5 на 5.
Мне интересно, в чем проблема?
Это похоже на то, что мне не удается вызвать onStart()
в profile fragment
классе, когда я перехожу к другому фрагменту и снова возвращаюсь к profile fragment
, но я не могу найти решения для этого, кроме как перейти на некоторое время к активности и вернуться к profile fragment
и он вызовет меня во фрагменте профиля onStart()
метод отлично. Потому что fragment to fragment
не звонит onStart()
отлично. и activity to fragment
вызывает onStart() inside fragment
префект. , и я сожалею раньше, потому что если это не проблема пожарного. Похоже, я не понимаю жизненный цикл действия, и как перезапустить или возобновить фрагмент, я все еще ищу сейчас и не отвечаю должным образом. и до сих пор учат эти посты ..
Метод обновления содержимого фрагмента при изменении данных (например, вызов onCreateView)
Обновить фрагмент при перезагрузке
Я извлекаю 10 фотографий из магазина в классе profile fragment
, чтобы загрузить их в вид переработчика. и этот код в проблеме, как я упоминал выше:
@Override
public void onStart() {
super.onStart();
contentList.clear();
if (firebaseAuth.getCurrentUser() != null) {
recyclerSeen.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
Boolean reachBottom = !recyclerView.canScrollVertically(-1);
if (reachBottom) {
loadMorePost();
}
}
});
// RETRIEVING ALL PHOTOS
Query firstQuery = firebaseFirestore
.orderBy("timestamp", Query.Direction.DESCENDING)
.limit(5);
firstQuery.addSnapshotListener(new EventListener<QuerySnapshot>() {
@Override
public void onEvent(QuerySnapshot documentSnapshots, FirebaseFirestoreException e) {
if (isFirstPageFirstLoad) {
lastVisible = documentSnapshots.getDocuments().get(documentSnapshots.size() - 1); // array 0, 1, 2
}
for (DocumentChange doc : documentSnapshots.getDocumentChanges()) {
if (doc.getType() == DocumentChange.Type.ADDED) {
//String postId = doc.getDocument().getId();
ContentProfile contentSeen = doc.getDocument().toObject(ContentProfile.class);
/* how to store multi ArrayList */
if (isFirstPageFirstLoad) {
contentList.add(contentSeen);
} else {
contentList.add(0, contentSeen);
}
adapterSeen.notifyDataSetChanged();
}
}
isFirstPageFirstLoad = false;
}
});
}
}
public void loadMorePost() {
Query nextQuery = firebaseFirestore
.collection("ProfileDashboard")
// .document(currentUserId)
// .collection("seenBy")
.orderBy("timestamp", Query.Direction.DESCENDING)
.startAfter(lastVisible)
.limit(5);
nextQuery.addSnapshotListener(new EventListener<QuerySnapshot>() {
@Override
public void onEvent(QuerySnapshot documentSnapshots, FirebaseFirestoreException e) {
if (!documentSnapshots.isEmpty()) {
lastVisible = documentSnapshots.getDocuments().get(documentSnapshots.size() - 1);
for (DocumentChange doc : documentSnapshots.getDocumentChanges()) {
if (doc.getType() == DocumentChange.Type.ADDED) {
//String postId = doc.getDocument().getId();
ContentProfile contentSeen = doc.getDocument().toObject(ContentProfile.class);
contentList.add(contentSeen);
adapterSeen.notifyDataSetChanged();
}
}
}
}
});
}