Почему firebase заполняет мой видоискатель тем же изображением из Firebase Storage - PullRequest
0 голосов
/ 17 апреля 2019

У меня есть приложение для блога, которое состоит из имени пользователя, profileImage, описания и postImage. Я использую этот код для извлечения этих предметов из firebase

 FirebaseRecyclerAdapter<Blog,BlogViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Blog, BlogViewHolder>(

            Blog.class,
            R.layout.blog_row,
            BlogViewHolder.class,
            mDatabase.orderByChild("TimeOrder")

    ) {
        @Override
        protected void populateViewHolder(final BlogViewHolder viewHolder, Blog model, int position) {


            viewHolder.setDescription(model.getDescription());
            if (isAdded()) {
                viewHolder.setImage(getActivity(), model.getPostimage());
            }
            viewHolder.setUid(model.getUid());//get username and profile picture from this

Все хорошо, за исключением того, что примерно два postImages повторяются в обзоре переработчика. Изображение профиля также принадлежит одному и тому же пользователю, т.е. одно или два изображения используются в качестве изображений профиля остальных пользователей. Это код для setImage

 public void setImage(final Context con, final String image){

            final ImageView imageView = view.findViewById(R.id.post_image);


            if (postbool) {

                Picasso.with(con).load(image).placeholder(R.drawable.unnamed).error(R.drawable.imageerror).networkPolicy(NetworkPolicy.OFFLINE).into(imageView, new Callback() {
                    @Override
                    public void onSuccess() {

                        postbool = false;
                    }

                    @Override
                    public void onError() {

                        Picasso.with(con).load(image).placeholder(R.drawable.unnamed).into(imageView);

                        postbool = false;
                    }
                });

            }
        }

Это несколько скриншотов. Картинка профиля такая же. Куда я иду не так?

enter image description here

enter image description here

1 Ответ

1 голос
/ 17 апреля 2019

Это может быть связано с проблемами кеша!Мое предложение, всегда сбросить все представления в ViewHolder перед заполнением значений.

@Override
    protected void populateViewHolder(final BlogViewHolder viewHolder, Blog model, int position) {
        **reset all views**
        viewHolder.setDescription("");
        viewHolder.imageview.setImageDrawable(null);
        viewHolder.setUid("");

        viewHolder.setDescription(model.getDescription());
        if (isAdded()) {
            viewHolder.setImage(getActivity(), model.getPostimage());
        }
        viewHolder.setUid(model.getUid());//get username and profile picture from this

Пожалуйста, дайте мне знать, как это происходит!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...