ViewPager+Fragment+ListView(内嵌GridView)翻页卡顿问题,求指导!谢谢

Android 码拜 9年前 (2016-05-17) 1288次浏览
ViewPager+Fragment+ListView(内嵌GridView)翻页卡顿问题,求高手帮忙!万分感谢!
猜测原因:
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试下  ?!

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明ViewPager+Fragment+ListView(内嵌GridView)翻页卡顿问题,求指导!谢谢
喜欢 (0)
[1034331897@qq.com]
分享 (0)