草庐IT

notifyitemchanged

全部标签

android - 在不调用适配器上的 notifyItemChanged(int) 的情况下更新 RecyclerView 项目 ProgressBar

我正在尝试更新一个progressBar,它是RecyclerView项目之一的一部分。我知道我可以通过两种方式做到这一点,方法一:通过调用notifyItemChanged(position)刷新item行方法2:通过使用LayoutMananger对象上的findViewByPosition()方法访问View。但不幸的是,它们都不适用于我的情况。如果我使用第一个,整个项目将被重新绘制,recyclerview的背景颜色为灰色,项目为白色,因此用户可以注意到整个项目刷新。如果我尝试第二个,我最终会在滚动时遇到问题。我想像WhatsApp一样更新进度。提前致谢

android - 如何覆盖 RecyclerView 适配器的方法 notifyDataSetChanged、notifyItemChanged ...

如题。我正在编写一个支持多选模式的自定义RecyclerView。我需要跟踪每个项目的选中/未选中状态。所以在recyclerView的数据大小发生变化之后。我想更新我的跟踪状态列表的大小。但我不知道在哪里重写方法:notifyDataSetChanged、notifyItemChagned.... 最佳答案 正如前面的答案已经正确陈述的那样。您不能,因为这些方法是最终的。我在实现FastAdapter时遇到了同样的情况我想到的唯一解决方案是对这些方法进行稍微不同的命名。notifyDataSetChanged->notifyAda

android - notifyItemChanged() 是否强制调用 onBindViewHolder()?

当我在我的RecyclerView上调用notifyItemChanged()时,相应的Views(在本例中为按钮)没有按预期更新.我调用他们的原因是数据已经改变,这会导致他们的背景颜色改变。这是否意味着notifyItemChanged()不会强制调用onBindViewHolder()?我尝试使用notifyDataSetChanged()并且确实会导致View按照我的需要重新加载,所以我知道我的实现是正确的。(请注意,我不想使用notifyDataSetChanged(),因为效率很低,我只将它用作完整性测试)。 最佳答案 刷

android - 使用 DiffUtil 更新 RecyclerView 中的单个项目

我想更新我的RecyclerView中的单个项目。该项目只是持有isFavourite标志的POJObean。用户可以单击项目并设置/取消设置为收藏夹。我已经使用DiffUtil回调实现了适配器。有一个回调方法booleanareContentsTheSame(intoldItemPosition,intnewItemPosition)但在我的例子中,旧项目和新项目是同一个对象,所以没有什么可以比较的(equals方法返回true)。我应该保存以前的标志值然后检查更改还是任何简单的解决方案? 最佳答案 这是我的解决方案。我不使用Di

android - 为什么 notifyItemChanged 只能在 setAdapter 之后的 Post Runnable 中起作用?

publicclassMainActivityextendsAppCompatActivity{@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);RecyclerViewlist=(RecyclerView)findViewById(R.id.list);list.setLayoutManager(newLinearLayoutManager(this));finalRecyclerView.A

android - 在 recyclerview 中的 notifyitemchanged 期间保留链式 react

我开始修改我的应用程序以支持Lollipop。基本上,我有一个带有recyclerview的文件浏览器fragment,当用户打开这个fragment时,他会看到他根目录中的所有文件夹,当用户单击该文件夹时,我需要获取所有子文件夹+文件并将它们显示给用户使用相同的recyclerview和notifydatachanged。该功能正常工作,问题是当用户单击文件夹时,在notifydatachanged期间不会保留涟漪效应。file_item.xmlRecyclerview适配器:publicclassRecycleAdapterextendsRecyclerView.Adapter{p

android - notifyItemChanged(int position) 更新 RecyclerView 中的多个项目

我正在使用RecyclerView显示项目列表,我需要按位置更新单个项目的状态。我正在更新列表中的项目,然后调用notifyItemChanged(intposition)像这样:myList.set(position,newModifiedItem);notifyItemChanged(position);该项目已成功更新,但也会随机更新一些其他项目,每次我上下滚动我的项目列表时,也会对其他项目进行此更新(不同的图标状态)。我在onBindViewHolder中进行更改,我按位置检查列表项并决定设置不同的状态。完整适配器代码:publicclassMyAdapterextendsRe

android - 为什么 RecyclerView.notifyItemChanged() 会创建一个新的 ViewHolder 并同时使用旧的 ViewHolder 和新的 ViewHolder?

最近我使用RecyclerView并添加了一个自定义标题View(另一种类型的项目View)并尝试在数据发生更改时对其进行更新。奇怪的事情发生了。适配器创建一个新的HeaderViewHolder并同时使用新的HeaderViewHolder和旧的。这是示例。MainActivity.javapublicclassMainActivityextendsActionBarActivity{privateRecyclerViewmRecyclerView;privateMyAdaptermAdapter;@OverrideprotectedvoidonCreate(BundlesavedI

android - 为什么 RecyclerView.notifyItemChanged() 会创建一个新的 ViewHolder 并同时使用旧的 ViewHolder 和新的 ViewHolder?

最近我使用RecyclerView并添加了一个自定义标题View(另一种类型的项目View)并尝试在数据发生更改时对其进行更新。奇怪的事情发生了。适配器创建一个新的HeaderViewHolder并同时使用新的HeaderViewHolder和旧的。这是示例。MainActivity.javapublicclassMainActivityextendsActionBarActivity{privateRecyclerViewmRecyclerView;privateMyAdaptermAdapter;@OverrideprotectedvoidonCreate(BundlesavedI

java - 在 setOnUtteranceProgressListener 中调用时 notifyItemChanged() 不起作用

编辑我在Github上创建了一个演示项目来展示确切的问题。GitProject.我在Kotlin中编写了一个可扩展的recyclerView每行都有一个使用TextToSpeech的播放按钮。播放按钮的文本应在播放时更改为停止,然后在播放结束时更改回播放。当我在setOnUtteranceProgressListener的onStart和onDone中调用notifyItemChanged时,onBindViewHolder不会被调用,recyclerView中的行将不再正确展开和折叠。t1=TextToSpeech(context,TextToSpeech.OnInitListene