【问题标题】:Problem loading glide inside RecyclerView-android在 RecyclerView-android 中加载滑行时出现问题
【发布时间】:2021-03-28 13:45:37
【问题描述】:

我正在使用 recyclerview 显示成员列表、任务和个人资料图片,但每当我转到另一个片段并快速返回它时,我就会得到

您不能为已破坏的活动启动加载 com.bumptech.glide.manager.RequestManagerRetriever.assertNotDestroyed(RequestManagerRetriever.java:317)

这是我的适配器代码

public class MembersAdapter extends FirestorePagingAdapter<MembersModel, MembersAdapter.MembersViewHolder> {
    public MembersAdapter(FirestorePagingOptions<MembersModel> options) {
        super(options);}

    @Override
    protected void onBindViewHolder(@NonNull MembersViewHolder holder, int position, @NonNull MembersModel membersModel) {
        holder.tvmembername.setText(membersModel.getName());

        holder.tvtask.setText(membersModel.getTask());

        String imgPath = "images/"+membersModel.getUid()+".jpeg";
        StorageReference storageRef = FirebaseStorage.getInstance().getReference();
        StorageReference imageRef = storageRef.child(imgPath);
        Glide.with(holder.VmemBpic.getContext())
                .load(imageRef)
                .circleCrop()
                .format(DecodeFormat.PREFER_RGB_565)
                .placeholder(R.drawable.ic_user)
                .into(holder.VmemBpic);

        holder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                AppCompatActivity activity = (AppCompatActivity) v.getContext();
                activity.getSupportFragmentManager().beginTransaction()
                        .replace(R.id.fragment_container, new UserFragment(membersModel.getName(), membersModel.getTask(), membersModel.getPurl(), membersModel.getDesc(), membersModel.getLinkedinurl(), membersModel.getInstagramurl(), membersModel.getGithuburl(), membersModel.getEmail(), membersModel.getUid()))
                        .addToBackStack("user").commit();
            }
        });
    }

    @Override
    protected void onLoadingStateChanged(@NonNull LoadingState state) {
        super.onLoadingStateChanged(state);
        switch (state){
            case LOADED:
                break;
            case ERROR:
                break;
            case FINISHED:
                break;
            case LOADING_MORE:
                break;
            case LOADING_INITIAL:
                break;
        }
    }

    @NonNull
    @Override
    public MembersViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.single_member, parent, false);
        return new MembersViewHolder(view);
    }

    public class MembersViewHolder extends RecyclerView.ViewHolder{
        private TextView tvmembername,tvtask;
        private ImageView VmemBpic;
        public MembersViewHolder(@NonNull View itemView) {
            super(itemView);
            tvmembername = itemView.findViewById(R.id.xtvmembername);
            tvtask = itemView.findViewById(R.id.xtvtask);
            VmemBpic = itemView.findViewById(R.id.xmemBpic);

        }
    }
}

【问题讨论】:

    标签: android android-recyclerview android-glide


    【解决方案1】:

    Glide.with(YOUR_CONTEXT_HERE) 中使用getApplicationContext(),或者您可以通过Adapter 构造函数传递Context 对象。

    【讨论】:

      猜你喜欢
      • 2020-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多