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

jarain 2015-07-16 10:12:26
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;
}
...全文
788 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Smile丶Ho 2016-08-01
  • 打赏
  • 举报
回复
LZ,我是StickyListHeadersListView的子列表放了一个gridview,然后发现gridview东西比较多的时候滑动好卡,不知道有什么解决方法
yixiu03 2016-05-20
  • 打赏
  • 举报
回复
最好调用scrollview.removecallback就不会了
还是卤蛋啊 2016-05-19
  • 打赏
  • 举报
回复
我最近有类似的问题,ListView item 中嵌套ViewPager 现在的问题是上下滑动ListView 会很卡
royorange 2016-02-15
  • 打赏
  • 举报
回复
LZ有什么解决方案麽?我也有类似的场景
_deadline 2015-07-16
  • 打赏
  • 举报
回复
viewpager.setpagerLimit();百度下
jarain 2015-07-16
  • 打赏
  • 举报
回复
引用 1 楼 a565102223 的回复:
LZ 内嵌的问题 何不用 Recyclerview试下 ??!!
谢谢,还没用过这个,我试一下!
xiaoxiage_ 2015-07-16
  • 打赏
  • 举报
回复
LZ 内嵌的问题 何不用 Recyclerview试下 ??!!
jarain 2015-07-16
  • 打赏
  • 举报
回复
引用 1 楼 a565102223 的回复:
LZ 内嵌的问题 何不用 Recyclerview试下 ??!!
ViewPager左右滑动不卡了,现在是Recyclerview的滚动开始卡了。。。
jarain 2015-07-16
  • 打赏
  • 举报
回复
引用 3 楼 u010911576 的回复:
viewpager.setpagerLimit();百度下
setOffscreenPageLimit? 没用的,试过了。。

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧