Android:重新绑定ListView或RecyclerView而不刷新标题
我需要在不刷新标题项本身的情况下刷新/重新绑定ListView或RecyclerView内容 关于如何做到这一点,有什么建议吗Android:重新绑定ListView或RecyclerView而不刷新标题,android,android-recyclerview,android-listview,header,Android,Android Recyclerview,Android Listview,Header,我需要在不刷新标题项本身的情况下刷新/重新绑定ListView或RecyclerView内容 关于如何做到这一点,有什么建议吗 谢谢。是的,你可以这样做。通常,标题在列表中的位置为0,因此标题位于列表的顶部。因此,对于您的列表,例如,RecyclerView您必须初始化适配器(在RecyclerView的情况下,您必须创建RecyclerView.adapter类的访问器),并且该适配器有很多方法更新适配器中的数据(notifyDataSetChanged()、notifyItemInserte
谢谢。是的,你可以这样做。通常,标题在列表中的位置为0,因此标题位于列表的顶部。因此,对于您的列表,例如,
RecyclerView
您必须初始化适配器(在RecyclerView
的情况下,您必须创建RecyclerView.adapter
类的访问器),并且该适配器有很多方法更新适配器中的数据(notifyDataSetChanged()、notifyItemInserted()
等)你可以使用其中一种方法,这取决于你的目的。因此,在您的情况下,可以使用notifyItemRangeChanged(int-positionStart,int-itemCount)
假设
标题位于位置0
:
假设您想绑定一次标题,然后在刷新后停止绑定:
调用notifyDataSetChanged()
重新加载时,会再次调用适配器中的onBindViewHolder()
方法来刷新数据,请记住这一点。您可以设置一个布尔值,以便绑定头一次。因此,即使多次调用onBindViewHolder()
,头也会绑定一次。
class Adapter extends ...........{
//use a boolean as a flag
private boolean bindHeader = true;
........
.......
.......
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
..........
if(position == 0 && bindHeader){
//bind the header only for the first time
......
......
//then stop binding after refresh
bindHeader = false;
}else if(position > 0){
//bind the reset of the items here
}
}
..............
..............
}
您不能通知Listview适配器中的部分项,这是Listview的一个缺点。。并且,RecyclerView
没有头的本机实现。首先让我们知道您是如何创建标题的>