Здравствуйте! Я использую адаптер переработчика Firebase, чтобы заполнить представление переработчика в фрагменте
Примечание: этот фрагмент имеет вид снизу навигации.
Загрузка содержимого из базы данных реального времени Firebase в порядке, но после некоторой прокрутки в представлении recycler, когда приложение переходит в фоновый режим и выводится на передний план, представление recycler начинается с первого элемента.
public class HomeFragment extends Fragment {
public HomeFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
view = inflater.inflate(R.layout.fragment_home, container, false);
recyclerView.setHasFixedSize(true);
mUserRef = FirebaseDatabase.getInstance().getReference().child("users");
mRootRef = FirebaseDatabase.getInstance().getReference().child("images");
options = new FirebaseRecyclerOptions.Builder<Model>()
.setQuery(mRootRef, Model.class)
.setLifecycleOwner(this)
.build();
firebaseRecyclerAdapter = new
FirebaseRecyclerAdapter<Model, MyViewHolder>(options) {
@Override
public long getItemId(int position) {
return position;
}
@Override
public int getItemViewType(int position) {
return position;
}
@Override
protected void onBindViewHolder(@NonNull final MyViewHolder holder, int position, @NonNull final Model model) {
holder.loadImage(model.getUrl());
holder.downloadLink.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
holder.downloadImage(getActivity(), model.getNumber(), model.getUrl());
}
}
});
}
holder.shareLink.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
holder.shareImage(getActivity(), model.getNumber(), model.getUrl());
}
});
holder.likeStatus(model.getNumber());
holder.downloadStatus(model.getNumber());
holder.favoriteLink.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
isLiked = true;
mUserRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (isLiked.equals(true)) {
if (dataSnapshot.child(user.getUid()).hasChild(model.getNumber())) {
mUserRef.child(user.getUid()).child(model.getNumber()).child("postnumber").removeValue();
isLiked = false;
} else {
mUserRef.child(user.getUid()).child(model.getNumber()).child("postnumber").setValue(model.getNumber());
isLiked = false;
}
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
});
}
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View holderView = LayoutInflater.from(context).inflate(R.layout.row_item, viewGroup, false);
return new MyViewHolder(holderView);
}
};
linearLayoutManager=new LinearLayoutManager(context);
recyclerView.setLayoutManager(linearLayoutManager);
recyclerView.setAdapter(firebaseRecyclerAdapter);
return view;
}
}
Пожалуйста, предложите, если Почему это не сохраняет его состояние или процесс, который я выбрал, неправильный?