今天写界面发现是个ListView的嵌套
对我这个新手而言,只能发动网友的力量在网上找demo了,奈何没有找到。。。。(可能我搜索关键词不准确)还浪费了我的积分!后来突然想起之前有用ExpandableListView写过分组列表,让它默认展开并且不能收缩不就实现了我想要的效果了吗?哈哈哈,机智如我:)
关键代码:
@ViewInject(value = R.id.elv_config)
ExpandableListView elvConfig;
List<HashMap<String, String>> gruops = new ArrayList<HashMap<String, String>>();
List<List<HashMap<String, String>>> childs = new ArrayList<List<HashMap<String, String>>>();
SimpleExpandableListAdapter sela = new SimpleExpandableListAdapter(
App.getInstance(), gruops, R.layout.item_car_config, new String[]{"name"},
new int[]{R.id.tv_config_parent}, childs, R.layout.item_child_car_config,
new String[]{"pzzname","pzznamez"}, new int[]{R.id.tv_config_child,R.id.tv_config_child_content});
// 加入列表
elvConfig.setGroupIndicator(null);
elvConfig.setAdapter(sela);
// 展开分组
for (int i = 0; i < gruops.size(); i++) {
elvConfig.expandGroup(i);
}
// 禁止点击收缩
elvConfig.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() {
@Override
public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) {
return true;
}
});
因为我的这个列表是在页面里面的fragment中加载出来的,一开始不能适应最外面的ScrollView导致不能填满容器,所以我重写了ExpandableListView
public class CustomeExpandableListView extends ExpandableListView{
public CustomeExpandableListView(Context context) {
super(context);
}
public CustomeExpandableListView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
public CustomeExpandableListView(Context context, AttributeSet attrs) {
super(context, attrs);
}
// 重写该方法,使ExpandableListView适应ScrollView
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
}
}
好了,这算不算是一篇技术博客?用词不当处还望多多包涵~
有好的方法也希望互相学习,一起进步!
今天朋友给我分享了一篇博客,附上地址