美文网首页
ExpandableListView使用时几个常用功能

ExpandableListView使用时几个常用功能

作者: 詠恆灬承諾 | 来源:发表于2017-03-07 12:31 被阅读0次

第一次写文章,一方面为了分享下自己项目中遇到的一些常见问题,记录下来方便以后回头看看,另一方面也是想看下大家有没有更好的解决方法。写得不好的地方,还请大家见谅。

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)即可实现,也可以用这个方法设置自己的图标。

相关文章

网友评论

      本文标题:ExpandableListView使用时几个常用功能

      本文链接:https://www.haomeiwen.com/subject/rnxmgttx.html