你的adapter内的数据只有两条,不出意外的话这两条都占不满屏幕.
既然占不满屏幕,那 listview 里面的 item view 就不会触发复用罗辑.
所以你切回到含有这个 listview 的界面时,listview 就会重新绘制屏幕内需要的 item view, 你的那两条数据对应的 view 就会全部绘制一遍.
假设你的 adapter 内有 100 条数据,屏幕内只能显示5条数据,那这样的话 listview 始终只保持有限的 item view 进行复用,这时候从别处切过来, listview 就只会加载屏幕内显示的那几个view.
所以如果你问的是listview每次都把数据加载一遍的问题,那原因就是你数据太少了...
如果你问的是fragment每次都重新加载的问题 (就是说每次切回该fragment都会触发fragment的onCreate方法),那就略复杂些,影响fragment生命周期的因素就很多了,根据代码写法不一样,其生命周期也差别很大.
如果是fragment每次都触发onCreate()方法的问题,请提供activity中切换fragment的代码.
private View view;//在fragment中声明全局变量
//然后在onCreateView方法中进行判断即可
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
if(null != view){//此处无需改动
ViewGroup parent = (ViewGroup) view.getParent();
if (null != parent) {
parent.removeView(view);
}
}else{//这里写你自己的代码
view = inflater.inflate(R.layout.fragment_data_list, container, false);
//你的页面初始化方法
}
return view;
}