1

我正在创建一个 RecyclerView 来显示一些图像和文本,然后用户可以为 RecyclerView 的行添加书签。RecyclerView 的图像在宽度和高度上匹配父级将是 wrap_content。单击书签时,适配器会在 RecyclerView 中调用 notifydatasetchanged。我的问题是,在调用 notifydatasetchanged 更改后,RecyclerView 会按高度闪烁其图像。

        @Override
        public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) {
            if (holder instanceof VHITEM) {
                final VHITEM VHitem = (VHITEM) holder;
                Glide.with(mContext)
                        .load(articleDataList.get(position).SourcePath)
                        .asBitmap()
                        .diskCacheStrategy(DiskCacheStrategy.ALL)
                        .placeholder(R.drawable.defaultimage)
                        .error(R.drawable.defaultimage)
                        .dontAnimate()
                        .into(VHitem.imageViewTagPic); 
            }
        }

OnButton 单击

    VHItem.imageViewAddRemoveBookmark.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
    notifyDataSetChanged(); }
    }

RecyclerView 配置

LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity());
recyclerView.setLayoutManager(linearLayoutManager);
4

2 回答 2

1

尝试使用它RecyclerView来限制视图的闪烁。

RecyclerView.ItemAnimator animator = mRecycler.getItemAnimator();

if (animator instanceof SimpleItemAnimator) {
    ((SimpleItemAnimator) animator).setSupportsChangeAnimations(false);
}
于 2017-03-04T07:26:54.793 回答
0

不是因为滑行,如果物品数据发生变化调用 notifyitemchanged(position,payload) 然后覆盖 onBindViewHolder 3 参数方法

于 2017-03-06T01:05:45.150 回答