ExpandableListView的异步展开/加载children

来源:互联网 发布:oppoa203软件下载 编辑:程序博客网 时间:2024/06/05 14:47

二级列表是比较常用的控件,Group列表一般在一开始就会获取到,但Group下的子列表还是要通过网络请求去获取的,所以,这里使用异步比较好,那在界面上如何处理更好呢,楼主使用的是这样的方式:

1.setup 一个ExpandableListView,Group的数据在程度一开始就加载好了。


2.我们为ExpandableListView设置

mList.setOnGroupClickListener(this);

其中的内容这样来写

    @Override    public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) {        boolean expanded = parent.isGroupExpanded(groupPosition);        if (!expanded) {            //在这加载数据,推荐使用AsycnTask之类的在另一个线程里做喽              return true;        }        return false;    }

3.在另一个线程中请求完数据之后(楼主用的是AsyncTask)

private class AsyncGetChannelTask extends AsyncTask<Object, Void, Integer> {        @Override        protected Integer doInBackground(Object... params) {            // 从网络请求数据            return result;        }        @Override        protected void onPostExecute(Integer res) {            // ok,现在有数据了,可以展开了            mList.expandGroup(groupPos);        }    }

4. 这样我们想要的异步加载效果就达到了,楼主上三张图来展示下。


原创粉丝点击