第一次写文章,一方面为了分享下自己项目中遇到的一些常见问题,记录下来方便以后回头看看,另一方面也是想看下大家有没有更好的解决方法。写得不好的地方,还请大家见谅。
1、设置列表默认展开
对于这个功能,之前在网上查了好久,最后整理出2写法。
在class中实现
for (int i = 0; i < groupCount; i++) {
view.expandGroup(i);
}
在适配器中实现
@Override
publicView getGroupView(intgroupPosition,booleanisExpanded, View convertView, ViewGroup parent) {
GroupViewHolder viewHolder =null;
if(convertView ==null) {
viewHolder =newGroupViewHolder();
convertView =LayoutInflater.from(parent.getContext()).inflate(R.layout.adapter_myorder_head,null);
viewHolder.adapter_myorder_id= (TextView) convertView.findViewById(R.id.adapter_myorder_id);
viewHolder.adapter_myorder_type= (TextView) convertView.findViewById(R.id.adapter_myorder_type);
convertView.setTag(viewHolder);
}else
viewHolder = (GroupViewHolder) convertView.getTag();
viewHolder.adapter_myorder_id.setText(myOrderModel.get(groupPosition).getOrderid());
viewHolder.adapter_myorder_type.setText(Constant.getOrderType(myOrderModel.get(groupPosition).getStatus()));
ExpandableListView expandableListView = (ExpandableListView) parent;
expandableListView.collapseGroup(groupPosition);//先关闭
expandableListView.expandGroup(groupPosition);//再展开
returnconvertView;
2、实现groupview不可点击
网上大多数方法是setOnGroupClickListener,return true表示不可点击,不过这不是我要的效果,因为点击之后,依旧会有点击效果,及获取焦点的现象,感觉怪怪的。我试过给布局中的控件setFocusable为false,不过还是不行。后来无意中发现一种解决方法,只需要布局中加一层LinearLayout或其他控件,使他覆盖groupview(如果留了边距,会发现点击后,空出部分有点击效果),并设置background,就可以解决,不过这是治标不治本的方法,真正让groupview不获取焦点,还得以后研究一下。。
3、隐藏自带的箭头
只需要view.setGroupIndicator(null)即可实现,也可以用这个方法设置自己的图标。