美文网首页
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