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

Android 码拜 6年前 (2015-07-18) 688次浏览

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分

#1

LZ 内嵌的问题 何不用 Recyclerview试下  ?!

#2

回复1楼:

谢谢,还没用过这个,我试一下!

#3

viewpager.setpagerLimit();百度下

#4

回复3楼:

setOffscreenPageLimit? 没用的,试过了。

#5

回复1楼:

ViewPager左右滑动不卡了,现在是Recyclerview的滚动开始卡了。


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