Просмотр повторных фрагментов не сохраняет свое состояние, когда приложение выводится на передний план из фона - PullRequest
1 голос
/ 21 мая 2019

Здравствуйте! Я использую адаптер переработчика 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;
    }


}

Пожалуйста, предложите, если Почему это не сохраняет его состояние или процесс, который я выбрал, неправильный?

...