Android:重新绑定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

我需要在不刷新标题项本身的情况下刷新/重新绑定ListView或RecyclerView内容

关于如何做到这一点,有什么建议吗


谢谢。

是的,你可以这样做。通常,标题在列表中的位置为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
没有头的本机实现。首先让我们知道您是如何创建标题的>