ViewPager+Fragment+ListView(内嵌GridView)翻页卡顿问题,求高手帮忙!万分感谢!
猜测原因:
1.ViewPager预加载的时候,已经将数据加载了一遍,但是滑动到当前页时,convertView变化,然后setText\setAdapter还是会再执行一遍,感觉这里造成了翻页瞬间会卡一下的原因。
2.嵌套Grid造成UI复杂的原因。
测试解决
1.把setText\setAdapter动作加到if(view==null){}里面可以解决流畅问题,但是ListView会加载不全。
2.去掉内部嵌套GridView的setAdapter后也会流畅,不过效果就是要嵌套。
猜测原因:
1.ViewPager预加载的时候,已经将数据加载了一遍,但是滑动到当前页时,convertView变化,然后setText\setAdapter还是会再执行一遍,感觉这里造成了翻页瞬间会卡一下的原因。
2.嵌套Grid造成UI复杂的原因。
测试解决
1.把setText\setAdapter动作加到if(view==null){}里面可以解决流畅问题,但是ListView会加载不全。
2.去掉内部嵌套GridView的setAdapter后也会流畅,不过效果就是要嵌套。
@Override public View getView(final int position, final View convertView, ViewGroup parent) { View view=convertView; ViewHolder holder=null; if(null==view ){ holder=new ViewHolder(); view=mInflater.inflate(R.layout.class_item, null); holder.factorry_name = (TextView) view.findViewById(R.id.claseName); holder.itemsGridview = (ScrollGridview) view.findViewById(R.id.itemsList); view.setTag(holder); /* *假如在这里执行的话不会卡,也不会重复执行,但是ListView会加载不全 *holder.factorry_name.setText(dataList.get(position).split("-")[2]); *holder.itemsGridview.setAdapter(new ClassGridAdapter(context, itemsDataList.get(position))); */ }else { holder=(ViewHolder) view.getTag(); } //下面的代码ViewPager预加载执行后滑动到当前页还会执行 holder.factorry_name.setText(dataList.get(position).split("-")[2]); holder.itemsGridview.setAdapter(new ClassGridAdapter(context, itemsDataList.get(position))); return view; }
解决方案
50
LZ 内嵌的问题 何不用 Recyclerview试下 ?!