PullToRefreshExpandableListView用于解决像QQ好友列表那种中组件,用法和ListView相同,不过他的设置很繁琐并且填充要用BaseExpandableListAdapter填充,同时这个adapter也实现了notifyDataSetChanged()方法,
下面列举PullToRefreshExpandableListView 一些设置
listView.getRefreshableView().setGroupIndicator(null);
listView.getRefreshableView().setDivider(null);
listView.getRefreshableView().setSelector(android.R.color.transparent);
listView.getRefreshableView().setOnGroupClickListener(this); //可以设置组点击监听
listView.getRefreshableView().setDivider(null);
listView.getRefreshableView().setSelector(android.R.color.transparent);
listView.getRefreshableView().setOnGroupClickListener(this); //可以设置组点击监听
listView.setPullToRefreshOverScrollEnabled(true); //可刷新
listView.setMode(PullToRefreshBase.Mode.PULL_FROM_END); //设置模式,此模式是可以上拉,BOTH是上拉+下拉
listView.setMode(PullToRefreshBase.Mode.PULL_FROM_END); //设置模式,此模式是可以上拉,BOTH是上拉+下拉
//上下拉监听,注意实现这个OnRefreshListener2类的对象
listView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ExpandableListView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<ExpandableListView> refreshView) {
LogUitls.showToast(getActivity(), "下拉刷新");
loadNextPage();
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<ExpandableListView> refreshView) {
LogUitls.showToast(getActivity(), "上拉加载更多");
loadNextPage();
}
});
@Override
public void onPullDownToRefresh(PullToRefreshBase<ExpandableListView> refreshView) {
LogUitls.showToast(getActivity(), "下拉刷新");
loadNextPage();
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<ExpandableListView> refreshView) {
LogUitls.showToast(getActivity(), "上拉加载更多");
loadNextPage();
}
});
listView.getRefreshableView().setAdapter(adapter);// 填充adapter
下面是adapter的设置
private BaseExpandableListAdapter adapter=new BaseExpandableListAdapter() {
// 返回组的个数
@Override
public int getGroupCount() {
return list.size();
}
//返回每组中items的个数
@Override
public int getChildrenCount(int groupPosition) {
return list.get(groupPosition).getClass_way().size();
}
//返回组对象
@Override
public Object getGroup(int groupPosition) {
return list.get(groupPosition);
}
//返回每组items对象
@Override
public Object getChild(int groupPosition, int childPosition) {
return list.get(groupPosition).getClass_way().get(childPosition);
}
//返回组id
@Override
public long getGroupId(int groupPosition) {
return groupPosition;
}
//返回组中items的id
@Override
public long getChildId(int groupPosition, int childPosition) {
return childPosition;
}
@Override
public boolean hasStableIds() {
return true ;
}
//返回父布局
@Override
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
if (convertView==null){
convertView=inflater.inflate(R.layout.items_parents_class_list_fragment,null);
}
TextView grade= ViewHolder.get(convertView,R.id.tv_grade_items_parents_class_list_fragment);
grade.setText(list.get(groupPosition).getGrade_name());
TextView subject=ViewHolder.get(convertView,R.id.tv_subject_items_parents_class_list_fragment);
subject.setText(list.get(groupPosition).getSubject_name());
TextView goodsName=ViewHolder.get(convertView,R.id.tv_name_items_parents_class_list_fragment);
goodsName.setText(list.get(groupPosition).getGoodsName());
return convertView;
}
// 返回子布局
@Override
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
if (convertView==null){
convertView=inflater.inflate(R.layout.items_childs_class_list_fragment,null);
}
TextView classWay=ViewHolder.get(convertView,R.id.tv_class_way_items_childs_class_list_fragment);
classWay.setText(list.get(groupPosition).getClass_way().get(childPosition).getClass_way_name());
TextView classWayPrice=ViewHolder.get(convertView,R.id.tv_class_way_price_items_childs_class_list_fragment);
classWayPrice.setText("¥"+list.get(groupPosition).getClass_way().get(childPosition).getClass_price()+"/时");
return convertView;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
};
// 返回组的个数
@Override
public int getGroupCount() {
return list.size();
}
//返回每组中items的个数
@Override
public int getChildrenCount(int groupPosition) {
return list.get(groupPosition).getClass_way().size();
}
//返回组对象
@Override
public Object getGroup(int groupPosition) {
return list.get(groupPosition);
}
//返回每组items对象
@Override
public Object getChild(int groupPosition, int childPosition) {
return list.get(groupPosition).getClass_way().get(childPosition);
}
//返回组id
@Override
public long getGroupId(int groupPosition) {
return groupPosition;
}
//返回组中items的id
@Override
public long getChildId(int groupPosition, int childPosition) {
return childPosition;
}
@Override
public boolean hasStableIds() {
return true ;
}
//返回父布局
@Override
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
if (convertView==null){
convertView=inflater.inflate(R.layout.items_parents_class_list_fragment,null);
}
TextView grade= ViewHolder.get(convertView,R.id.tv_grade_items_parents_class_list_fragment);
grade.setText(list.get(groupPosition).getGrade_name());
TextView subject=ViewHolder.get(convertView,R.id.tv_subject_items_parents_class_list_fragment);
subject.setText(list.get(groupPosition).getSubject_name());
TextView goodsName=ViewHolder.get(convertView,R.id.tv_name_items_parents_class_list_fragment);
goodsName.setText(list.get(groupPosition).getGoodsName());
return convertView;
}
// 返回子布局
@Override
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
if (convertView==null){
convertView=inflater.inflate(R.layout.items_childs_class_list_fragment,null);
}
TextView classWay=ViewHolder.get(convertView,R.id.tv_class_way_items_childs_class_list_fragment);
classWay.setText(list.get(groupPosition).getClass_way().get(childPosition).getClass_way_name());
TextView classWayPrice=ViewHolder.get(convertView,R.id.tv_class_way_price_items_childs_class_list_fragment);
classWayPrice.setText("¥"+list.get(groupPosition).getClass_way().get(childPosition).getClass_price()+"/时");
return convertView;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
};