在项目更改后获取 recyclerview 当前大小(在项目删除后)(notifyItemRemoved(position))

get recyclerview current size after item change(after item removed)(notifyItemRemoved(position))

我必须在从 recyclerview 中删除项目后获取 recyclerview 的数据集大小

我正在从适配器中删除项目

    @Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {

    String string = uriStringList.get(position);

    if (string != null) {
        holder.imagePhoto.setImageURI(Uri.parse(string));
    }

    holder.crossImg.setOnClickListener(view -> {
        uriStringList.remove(position);
        notifyItemRemoved(position);
    });

}

片段中的代码

    binding.recyclerViewImg.setLayoutManager(new LinearLayoutManager(requireContext(), RecyclerView.HORIZONTAL, false));
    binding.recyclerViewImg.setHasFixedSize(true);
    photoListAdapter = new PhotoListAdapter();
    binding.recyclerViewImg.setAdapter(photoListAdapter);
    photoListAdapter.setUriStringList(uriStringList);

在您的片段中,您可以在适配器上使用 registerAdapterDataObserver,当项目被移除时,您会收到通知,然后获得新尺寸。

例如:

photoListAdapter.registerAdapterDataObserver(new RecyclerView.AdapterDataObserver() {
            @Override
            public void onItemRangeRemoved(int positionStart, int itemCount) {
                Log.d(
                        "MG-onItemRangeRemoved", "count" + photoListAdapter.getItemCount()
                );
            }
        });