atomQQ 笔记 之 列表元素的异步加载
在list当中,如果自定义item中的内容是从网络获取的,并且要求较高的实时性,那么就需要异步加载,这样,只需要显示在屏幕上的item以及即将被显示的item去获取网络资源,不至于对网络访问占用很大的带宽,在移动应用中尤其要这么做。
下面是我实现item加载头像、昵称|备注名称、个性签名的异步加载方法。
首先,list是与adapter适配器绑定。
ListadAdapter与ExpanedListAdapter当中有几个必须实现的方法:
public Object getChild(int group, int child)
public long getChildId(int group, int child)
public View getChildView(int group, int child, boolean isLastChild, View convertView,
ViewGroup parent)
public int getChildrenCount(int group)
public Object getGroup(int group)
public int getGroupCount()
public long getGroupId(int group)
public View getGroupView(int group, boolean isExpanded, View convertView,
ViewGroup parent)
我们要在获取view的方法或者干脆在view里面做手脚,在加载view的同时,访问网络,并将内容显示在view当中。
我是在view当中添加了几个逻辑代码,用以获取数据并加载,为了提高用户体验,首先加载一个默认头像以及签名,通过线程再从网上获取内容并加载至ui。
具体细节就不罗嗦了,网上很多例子,以及提高list效率的代码,也就是通过静态类来复用view来提高加载效率