我有RecyclerView
个自定义RecyclerView
适配器。
使用CardFlipAnimation(RecyclerView
)打开每个AnimatorSet
行(当用户点击它时)。
在每一行中都有一个按钮,用于更改SharedPreferences
中的int值,以及显示此值的TextView
。
如果我打开了多行,我需要动态更改所有打开的行中的TextViews
。
NotifyDataSetChanged
等更新了RecyclerView
中的数据,但这是一个问题,他们关闭了已打开的行(因为标准已关闭,然后以AnimatorSet
打开)
我现在的主要任务是了解如何在所有已打开的行中仅更新一个TextView
并保持打开状态(不要触摸AnimatorSet
)。
我想我可以使用Observer
,但我不知道如何正确实现他。
如果您有任何想法,请帮助我。
感谢您的回答
答案 0 :(得分:0)
好的,最后我得到了一个解决方案,它有点难看,但它完全符合我的需要。
首先:我将RecyclerView传递给适配器
...
public CardBaseAdapter(RecyclerView recyclerView,...) {
...
this.mRecyclerView = recyclerView;
....
第二次:在我的适配器中创建一个方法:
public void updateViews() {
for(int i =0;i<getItemCount();i++){
HeaderViewHolder holder = (HeaderViewHolder)recyclerView.findViewHolderForAdapterPosition(i);
if(holder!=null){
//Update views at holders
}
}
}
第三次:当我需要更新视图时调用此函数
P.S。我不确定这是更新视图的正确方法,但是如果你知道另一个好的解决方案,它就可以了,请发布它