展开

关键词

可折叠列表ExpandableListView多选择

一、认识ExpandableListView ExpandableListView 是 ListView 类,它在普通ListView基础上进行了扩展,它把应用中列表项分里又可包含多列表项 android:childIndicatorStart:列表项指示符开始约束。 android:groupIndicator:显示在列表旁边Drawable对象,可以是一图像。 * * @param groupPosition * @param childPosition 元素 * @param isLastChild 元素是否处于最后一 getGroupCount():该方法包含列表项数量。 getGroupView():该方法View对象将作列表项。 getChildrenCount():该方法特定所包含列表项数量。 getChildView():该方法View对象将作特定、特定列表项。

1.6K100

ExpandableListView实现手风琴效果

部分属性和点击事件 android:groupIndicator、android:childIndicator:条目和条目前面图标,默认值箭头,可设自定义图片资源。 若不显示该图标,则设@null。 android:divider、android:childDivider:条目分隔线。 适配器 根据数据源,可使用适配器有两BaseExpandableListAdapter和CursorTreeAdapter,其中,CursorTreeAdapter用于数据源Cursor getChildrenCursor():传入Cursor对象,获取条目Cursor对象。 newGroupView():创建视图,视图。 bindGroupView():在这里绑定视图数据内容,第一参数即newGroupView()方法值。 newChildView():创建条目视图。

23731
  • 广告
    关闭

    腾讯云+社区系列公开课上线啦!

    Vite学习指南,基于腾讯云Webify部署项目。

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android之ExpandableListView下拉分实现

    一、ExpandableListView介绍     一垂直滚动显示两别(Child,Group)列表项视图,列表项来自ExpandableListAdapter 。可以单独展开。    getPackedPositionGroup(long packedPosition) :所选择 getPackedPositionForChild(int groupPosition, int childPosition) :所选择项 getPackedPositionType(long packedPosition) :所选择项类型(Child,Group) isGroupExpanded 1.重要方法 getChildId(int groupPosition, int childPosition) 获取与在给定给予孩数据。 getChildrenCount(int groupPosition) 在指定GroupChild数目。

    34770

    A022-列表容器之ExpandableListView

    上面实现效果可展开列表,项都可能有若干项,默认ExpandableListView不太美观,我们需要通过自定义布局类美化它,在使用过程中有一些需要我们去了解点,会在实现过程提一下。 并实现以下方法 getGroupCount(获取数) getChildrenCount(获取数) getGroup(获取对象) getChild(获取对象) getGroupId(获取项 ,我们可以看到ExpandableListView除了一项,项下面有若干项,我们在使用时候首先要确定要展示数据结构,项有groupPosition来标识,然而项需要根据groupPosition 和ChildPosition来标识,我们设数据时候分别在getGroupView和getChildView方法来设视图和项视图数据,最后填充数据视图对象,一些逻辑控制代码也是在这两方法中进行 ,比如控制展开、点击、点击、项被选中效果等等,这里笔者是自定义了调接口来满足业务需求,Android API也提供类似方法,大家可以查看官方文档。

    26310

    Android ExpandableListView双层嵌套实现三树形菜单

    在Android开发中,列表可以说是最常见了,一般都是使用ListView,当涉及到二维数时,更多使用到ExpandableListView,然而当数据结构比较复杂时,就需要使用三菜单或者更多菜单来显示 简单介绍下重点,了简便,把第一层ExpandableListView称之EListOne,Adapter称之AdpOne;第二层ExpandableListView称之EListTwo, ,我们一般需要点击菜单后进行界面跳转或者数据处理,所以就需要获取所点击菜单精确下标,获取方法很简单,只需要定义一接口,在AdpOnegetChildView方法中调即可: /** * @ 项时,调本方法,根据下标获取值来做操作 * */ @Override public void onClickPosition(int parentPosition, int groupPosition 展开时,因group只有一项,所以ExpandableListView总高度= * (ExpandableListViewchild数量 + 1 )* 一项高度 * */ eListView.setOnGroupExpandListener

    37120

    支持多项选择ExpandableListView

    与ListView不是,ExpandableListAdapter要渲染实现两View(Group和列表项)操作。 一列表项容器创建OnClickListener监听鼠标点击事件。 所以,次获取到view后都需要对其内容重新设(比如设正确文本,设监听器等) 2. check状态设很tricky。我开始认直接在监听器中调用容器toggle()方法即可。 由于没有对这表进行设,所以一刷新check状态就全丢了。并且由于这key是基于拉平后所有可见列表项,当group扩展或收缩后,列表项,它拉平后还会变化。 所以,了解决这问题,我在adapter里增加了一二维表用于记录一列表项check状态。

    20420

    站在巨人肩膀上---重新自定义 android- ExpandableListView 收缩类,实现列表可收缩扩展

    int getChildrenCount(int groupPosition) { 3 //用来大标题内字标签数目,传入参数 groupPosition当前 4 //大标题下标,从0开始 } //对应上面,这二维字符串数共有 7 行,行对应一大标签 //列数是标签数,对应当前大标签,有多少就是有多少 private String[][] arms_two = new (int groupPosition) { return groupPosition; //注意,它是从0下标开始 } 4-> //对应大标签元素表示列表项展开后看到元素项=============*/ 143 144 /**----------得到armTypes和arms中元素ID------ ,并填到TextView中---------*/ 198 199 //获取与孩在给定数据,得到数arms中元素数据 200 @Override

    84270

    Android仿QQ分实现二菜单展示

    本文实例大家分享了Android仿QQ分实现二菜单展示具体代码,供大家参考,具体内容如下 首先展示下要实现效果 ? 其次,设item groupitem.xml <?xml version="1.0" encoding="utf-8"? 创建数据对象 添加分父菜单Group Group.class package com.example.m1.QQGroup; public class Group { private int ,这方法仅试图对象 * @param i * @param b * @param view * @param viewGroup * @return */ @Override public private ArrayList<ArrayList<Item iData = null; //信息 private ArrayList<Item lData = null; private

    28541

    Android实现商城购物车功能

    */ } }); } /** * 初始化ExpandableListView数据 * 并在数据刷新时,页面保持当前 Dialog不消失 roundCornerDialog.setOnKeyListener(keylistener);//设点击键Dialog不消失 TextView * 因使用是ExpandableListView,所以继承BaseExpandableListAdapter */ public class ShoppingCarAdapter extends ; * 通过notifyDataSetChanged()刷新数据,可保持当前 * * @param data 需要刷新数据 */ public void ----- 小编整理了一份Android电书籍,需要童鞋关注公众号复:"e_books" 即可获取哦!

    1.4K20

    Android实现商城购物车功能实例代码

    (实际开发中使用后台数据) private String shoppingCarData = "{\n" + " \"code\": 200,\n" + " \"datas\": [\n" + " */ } }); } /** * 初始化ExpandableListView数据 * 并在数据刷新时,页面保持当前 * * @param datas 购物车数据 */ private void = null && datas.size() 0) { //刷新数据时,保持当前 shoppingCarAdapter.setData(datas); //使所有展开 for (int i = Dialog不消失 roundCornerDialog.setOnKeyListener(keylistener);//设点击键Dialog不消失 TextView tv_message = view.findViewById * 因使用是ExpandableListView,所以继承BaseExpandableListAdapter */ public class ShoppingCarAdapter extends

    59020

    Android如何实现社交应用中评论与复功能详解

    简单来说,ExpandableListView是一用于垂直方向滚动列表视图,ExpandableListView与listview不之处在于,它可以实现二,并通过ExpandableListAdapter getGroupId,id,一般将当前group传给它。 getChildId,中某childid,一般也将child当前传给它,不过了避免重复,可以使用getCombinedChildId(groupPosition, childPosition hasStableIds,表示分选项是否持有稳定id,这里true即可。 isChildSelectable,表示分child是否可以选中,这里true。 getChildView,中child视图,比较容易理解,第一参数是当前group所在,第二参数是当前child所在

    46720

    【算法面试题】两长度,元素随机整数无序数,交换,使得两差值最小。

    面试是后端java岗,但是笔试题好像都是统一一套,其中也涉及到了一些前端及JS一些问题,其中前端问题印象较深是如何加速一网站或者网页? 大哥,我面是后端,你这不是在难我胖虎么,于是随便答了答静态资源分离,CND加速之类人感觉答还是靠点边,哈哈。 最后是一道算法题:两长度,元素随机整数无序数,交换,使得两差值最小?没有手写算法经验,所以直接给跪了。 到家,打开笔记本记录一下。 /** * 有两a,b,大小都n,数元素任意整数,无序 * 要求:通过交换a,b中元素,使[数a元素和]与[数b元素和]之间差绝对值最小。 * 4、当数等时,又或者是两中找不到元素差值小于数和差值数据时得出最终结果 */ public static void calculate(int[] array, int

    22210

    ExpandableListView简单应用及listview模拟ExpandableListView

    @Override public int getGroupCount() {   return groupList.size();           }   // 列表数 效果虽然丑了点,不过就是这么事,至于显示groupitem,还是孩item,你可以随意定制.    不想敲学,可以下载源码,稍作调整. 其实就是:点击listviewitem,展开其孩,点击另一item,打开其孩,关闭之前那. ,只是多了用于控制孩隐藏与显示方法changeImageVisable.代码很简单,信不用过多解释. (学们对这方法一点也不陌生.) /***      * 动态设listview高度      *       * @param listView      */ public

    67070

    Android之微信朋友圈UI实现--ExpandableListView+GridView

    PS:我们都知道微信,更是知道朋友圈,很多人在朋友圈里卖起了化妆品,打入广告等自己做一下推广,里面会附带一写好看图片,上面有标题,有描述,整体布局美观,那么这是怎么实现呢,有些人可能会单使用 ,我们要继承BaseExpandableListAdapter,当你继承后,系统就会让你重写里面方法,方法有很多,不用全部,有如下几就行了(有小伙伴系统提示全部继承,还缺一)。 @Override public boolean hasStableIds() { return false; }  值:如果当前适配器不包含任何数据则True。 ,这里我解释一下list嵌套list,比如说一共是10里有一项目,项目中又有2图片 List<List<ChildBean>> listChild = new ArrayList ,里面里不一定有几(这里画了两)。

    53730

    重走Android路之挑几基本控件玩玩(上卷)

    那么,我们使用系统提供UI,绝大部分是由View以及ViewGroup构成,而我们界面UI也是通过不合实现。大概图如下: ? 而今天,我们通过实践开始好好撸一波,继续味~ 首先,而今,Android布局再也不是曾经五大布局了,又添加了一项名ConstraintLayout(约束布局),这放到后期我们进行具体使用。 Button从TextView身上派生出几属性,主要用于设阴影效果以及阴影,下面简单玩玩~ android:shadowColor: 阴影颜色; android:shadowDx: 阴影于 另外我们还需要注意以下: Android 4.0(API别14)引入了另一种称开关切换按钮,它提供了一滑块控件,可以该控件添加一Switch对象。 据官方所述: AdapterViewFlipper是一很简单ViewAnimator,它将在添加到它或多视图之间生成动画。一次只显示一。如果有要求,可以定期在之间自动翻动。

    21930

    Android实现购物车整体页面逻辑详解

    本文大家讲解了Android实现购物车整体页面逻辑,供大家参考,具体内容如下 MainActivity.java public class MainActivity extends AppCompatActivity ); //设合式自定义控件内部数量 childViewHolder.add_remove_view.setNumber(listBean.getNum()); //D.设商品CheckBox点击事件 = null){ mOnCartListChangeListener.onProductCheckedChange(i,i1); } } }); //D.设商品数量点击事件,通过接口调,暴露给外面 1 : 0); } } } //C.当加减器被点击时,调用,改变里面当前商品数量 参数1定商家 参数2定商品 参数3定改变具体数量是多少 public void changeCurrentProductNumber 点击时调 */ void onSellerCheckedChange(int i); /** * 当点击条目商品CheckBox调 */ void onProductCheckedChange(

    25050

    ExpandableListView实现商品列表折叠

    Android也给我们提供ExpandableListView类,完美实现这样类似需求, 极大方便了我们开发。结合之前项目我们做一简单讲解。 使用到第三方框架: AndroidAutoLayout 屏幕适配框架 代码 首先是布局需要用一ExpandableListView,配合adapter就能实现上面额效果,直接上代码。 ,主要注意两方法:getGroupView和getChildView public class CollocationListAdapter extends BaseExpandableListAdapter click事件,必需true } @Override public View getGroupView(final int groupPosition, boolean isExpanded View.GONE : View.VISIBLE); parentViewHolder.hsv_goods_list.setFocusable(false);//设后解决套餐无法正常展开

    56350

    ExpandableListView实现商品列表折叠

    Android也给我们提供ExpandableListView类,完美实现这样类似需求, 极大方便了我们开发。结合之前项目我们做一简单讲解。 首先懒看一下最终实现效果: ? 使用到第三方框架: AndroidAutoLayout 屏幕适配框架 代码 首先是布局需要用一ExpandableListView,配合adapter就能实现上面额效果,直接上代码。 ,主要注意两方法:getGroupView和getChildView public class CollocationListAdapter extends BaseExpandableListAdapter click事件,必需true } @Override public View getGroupView(final int groupPosition, boolean isExpanded View.GONE : View.VISIBLE); parentViewHolder.hsv_goods_list.setFocusable(false);//设后解决套餐无法正常展开

    36680

    最全JavaScript常见操作数函数方法宝典

    (arr) // ['apple', 'banana', 'cherry'] 该例中,省略了第一参数,所以在排序时默认按照字母表顺序进行排列,若首字母,则按第二字母先后顺序排列 // [5] 第二参数表示是数片段结束,所以取到片段是从第一参数表示取到第二参数表示前一元素。 ,样也会将该嵌套数元素转化字符串并连接起来 来看几 [1,2,3].toString() // '1,2,3' ['cherry','apple',' (不会改变原数) 该方法有一参数,该参数调函数,该调函数有一参数,该参数含义是数元素 当元素调用调函数值全部都true时,最后true;反,只要有一元素调用调函数 第二参数:可选参数,表示从数开始搜索 我们来看一

    14300

    元素节点(附考题)

    对应是一毫秒 // 数值,代表时间间隔 // 注意:setInterval会有一值,用来创建计时器对象么热切该计时器可以实现某一功能重复调用 //clearInterval , // 注意:全局变量中值在程序运行过程中可能随时发生变化,因此使用时一定小心 // 数:数本质上是一容器,可以帮助开发人员快速提供多变量,只不过多变量之间了区分,变量都会对应一下表 ,并且以新数形式 // // 注意:slice(start,end)在切片时,切片会从起始(start)直到结束前一(end-1) // //数中添加 (arr2) // // 数元素删除 // // 数开始元素删除 // // shift()--直接将数第一元素删除并 (arr2) //splice(index ,length)从数index开始连续删除length元素,并且将删除元素,如果length>1此时数据是一对应

    29710

    扫码关注云+社区

    领取腾讯云代金券