• ExpandableListView 遇到的问题


    最近在写一款电商类APP   购物车部分用ExpandableListView来写,在此记录一下遇到的问题

      1.ExpandableListView的展开与关闭

           expandableListView.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() {
                @Override
                public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) {
                    return true;//返回true,表示可展开
                }
            });

      2.ExpandableListView点击父布局时不关闭

    父布局中包含了CheckBox Button ImageButton等控件,占用了焦点

    解决办法 在占用焦点的控件中加入代码

      android:clickable="false"
      android:focusable="false"
      android:focusableInTouchMode="false"

      3ExpandableListView子布局点击事件不响应

    在子布局中存在CheckBox Button ImageButton等控件,占用了焦点

    解决办法

      android:clickable="false"
      android:focusable="false"
      android:focusableInTouchMode="false"

    在Adapter中设置

     //是否响应子列表点击事件
        @Override
        public boolean isChildSelectable(int groupPosition, int childPosition) {
            return true;//true表示子列表可以点击  false表示不可点击
        }

      4.ExpandableListView长按监听

    在adapter中的getGroupView()方法中

            convertView.setTag(R.id.tv_hj, groupPosition);//tv_hj 此类中的成员变量
            convertView.setTag(R.id.tv_gl, -1);//tv_gl此类中的成员变量

    在adapter中的getChildView()方法中

        convertView.setTag(R.id.tv_hj, groupPosition);
        convertView.setTag(R.id.tv_gl, childPosition);

    在类中

    elvView.setOnItemLongClickListener(new OnItemLongClickListener() {
                @Override
                public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
                    int groupPos = (Integer) view.getTag(R.id.tv_hj);
                    int childPos = (Integer) view.getTag(R.id.tv_gl);
                    if(childPos == -1){//长按父控件
                      MsgTools.toast(getActivity(),"点击了父"+groupPos,"s");
                    }else{//长按子控件
                        MsgTools.toast(getActivity(),"点击了子"+childPos,"s");
                    }
                    return true;
                }
            });
  • 相关阅读:
    ES6 promise 常用方法介绍
    js判断元素是否在可视区域里
    alert之后才执行
    jquery总结和注意事项
    java中unicode和中文相互转换
    html href页面跳转获取参数
    myBatis批量添加实例
    mybatis中返回自动生成的id
    遍历map的四种方法
    MyBatis魔法堂:Insert操作详解(返回主键、批量插入)
  • 原文地址:https://www.cnblogs.com/crazy-wang-android/p/9257174.html
Copyright © 2020-2023  润新知