毕设遇到的问题(二)---gridview viewholer
2013-05-21 10:44
225 查看
开始写第二篇了
关于GridView的问题
毕设写的是课程管理,这样需要一个weekview来显示一周所有的课程,国外已经有一个很好的应用叫TimeTable,虽然我的也叫timetable哈,但差距远了。因为好奇给开发者发了一封邮件,没想到开发者挺热情回复了我。在他和stackoverflow的帮助下,gridview的问题也解决了。
问题是这样的,一开始把所有的数据读取操作放在了getview里面,这无疑是自杀的行为,卡顿不是一般的。。。后来通过google稍微解决了一点卡顿的问题,但还是有那么些。是用异步来读取所有lesson 放在一个数组里面,然后getview根据position就可以很快的拿到了。
但是卡顿还是存在,于是去stackoverflow找,结果没找到,可能是因为英文关键词用的不对吧。然后就提问了,老外直接给我一个很长的文档,说复用convertView。地址在这http://www.vogella.com/articles/AndroidListView/article.html 找到了viewholder, 说convertView 要复用,因为每次findviewbyid也是相当耗时的。找到需要的地方,赶紧改代码啊。改完之后打开weekview 后果真流畅了不少,可是有一个大麻烦来了。就是gridview的显示问题,各种错乱。在csdn上有人说convertview不能复用,会导致显示错乱的问题,但是在gridview中很明显要使用viewholder pattern 才能解决卡顿的问题显然不靠谱。。。继续google,关于girdview的文章实在太少了。
仔细想了想,根据position 来get item是没错的,为何会出现其他的grid item会显示本不该显示的内容呢? 这因该是复用convertview的问题,继续google gridview getview的工作原理,说是position=0时候convertview是null, 但是以后的话就显示上一次return 的convertview了。如果是这样也就不难理解为什么会出现错乱的现象了。
解决方案 就是不断的重置viewholder中各种view的值。免得返回的convertview是上一个item的内容。这样确实也起到了作用。完美解决(可能是完美吧)。
ps:从db中读数据确实太慢,88个格子,执行一遍要2~3秒。这个速度难怪直接在getview中从数据库中get会卡顿勒。
关于GridView的问题
毕设写的是课程管理,这样需要一个weekview来显示一周所有的课程,国外已经有一个很好的应用叫TimeTable,虽然我的也叫timetable哈,但差距远了。因为好奇给开发者发了一封邮件,没想到开发者挺热情回复了我。在他和stackoverflow的帮助下,gridview的问题也解决了。
问题是这样的,一开始把所有的数据读取操作放在了getview里面,这无疑是自杀的行为,卡顿不是一般的。。。后来通过google稍微解决了一点卡顿的问题,但还是有那么些。是用异步来读取所有lesson 放在一个数组里面,然后getview根据position就可以很快的拿到了。
但是卡顿还是存在,于是去stackoverflow找,结果没找到,可能是因为英文关键词用的不对吧。然后就提问了,老外直接给我一个很长的文档,说复用convertView。地址在这http://www.vogella.com/articles/AndroidListView/article.html 找到了viewholder, 说convertView 要复用,因为每次findviewbyid也是相当耗时的。找到需要的地方,赶紧改代码啊。改完之后打开weekview 后果真流畅了不少,可是有一个大麻烦来了。就是gridview的显示问题,各种错乱。在csdn上有人说convertview不能复用,会导致显示错乱的问题,但是在gridview中很明显要使用viewholder pattern 才能解决卡顿的问题显然不靠谱。。。继续google,关于girdview的文章实在太少了。
仔细想了想,根据position 来get item是没错的,为何会出现其他的grid item会显示本不该显示的内容呢? 这因该是复用convertview的问题,继续google gridview getview的工作原理,说是position=0时候convertview是null, 但是以后的话就显示上一次return 的convertview了。如果是这样也就不难理解为什么会出现错乱的现象了。
解决方案 就是不断的重置viewholder中各种view的值。免得返回的convertview是上一个item的内容。这样确实也起到了作用。完美解决(可能是完美吧)。
ps:从db中读数据确实太慢,88个格子,执行一遍要2~3秒。这个速度难怪直接在getview中从数据库中get会卡顿勒。
相关文章推荐
- 在SrollView中嵌套GridView遇到的问题及解决办法
- 毕设遇到的问题(三)——自定义view
- 在SrollView中嵌套GridView遇到的问题及解决办法
- ASP.net 中遇到的gridview及formview问题集锦
- android-viewpager轮播图遇到的问题
- 关于webview上传文件(图片)遇到的问题
- 使用ViewHolder遇到的问题
- TableView遇到的问题
- listview多次调用addHeaderView和addFooterView时遇到的问题
- ViewPager+Fragment使用过程中手动清除及更新Fragment遇到的问题
- Asp.net中的GridView导出遇到的两个问题和解决方法
- Android自定义ViewGroup遇到的问题
- UIKit和Cocos2d-x的整合使用;设置CCEAGLView背景为透明,来显示背后的UIView; 以及整合中遇到的问题的解决方案
- viewpager 、fragment 遇到的问题
- [开发总结]WebView使用中遇到的一些问题&解决
- 布局嵌套时显示不全的问题 PullToRefreshRecyclerView,状态栏,GridView
- ASP.NET 2.0+GridView开发中遇到ViewState MAC验证错误
- 【项目中】关于webView上遇到的各种问题集锦
- Android应用插件化开发中自定义View基础插件遇到的问题
- RecyclerView中使用checkbox遇到的问题