首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

可折叠列表ExpandableListView多级选择

android:childIndicatorLeft:列表项指示符左边约束位置。 android:childIndicatorRight:列表项指示符右边约束位置。...android:childIndicatorStart:列表项指示符开始约束位置。 android:groupIndicator:显示在列表旁边Drawable对象,可以是一个图像。...* * @param groupPosition 位置 * @param childPosition 元素位置 * @param isLastChild 元素是否处于最后一个...getGroupCount():该方法返回包含列表项数量。 getGroupView():该方法返回View对象将作为列表项。...getChildrenCount():该方法返回特定所包含列表项数量。 getChildView():该方法返回View对象将作为特定、特定位置列表项。

2.4K100

ExpandableListView实现手风琴效果

若不显示该图标,则设置@null。 android:divider、android:childDivider:条目的分隔线。...适配器 根据数据源不同,可使用适配器有两个:BaseExpandableListAdapter和CursorTreeAdapter,其中,CursorTreeAdapter用于数据源Cursor...(1)BaseExpandableListAdapter需要重写方法: getGroup():从数据源中获取数据内容。 getGroupCount():获取总数。...getChildrenCursor():传入Cursor对象,获取相应条目的Cursor对象。 newGroupView():创建视图,返回一个新视图。...bindGroupView():在这里绑定视图数据内容,第一个参数即newGroupView()方法返回值。 newChildView():创建条目的视图。

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

A022-列表容器之ExpandableListView

上面实现效果可展开列表,每个组项都可能有若干个子项,默认ExpandableListView不太美观,我们需要通过自定义布局类美化它,在使用过程中有一些需要我们去了解点,会在实现过程提一下。...并实现以下方法 getGroupCount(获取组项个数) getChildrenCount(获取子项个数) getGroup(获取对象) getChild(获取对象) getGroupId(获取组项...id) getChildId(获取子项id) hasStableIds(元素是否持有稳定ID) getGroupView(获取显示指定视图对象) getChildView(获取显示指定项视图对象...,我们在使用时候首先要确定要展示数据结构,组项有groupPosition来标识位置,然而子项需要根据groupPosition和ChildPosition来标识位置,我们设置数据时候分别在getGroupView...和getChildView方法来设置视图和子项视图数据,最后返回填充数据视图对象,一些逻辑控制代码也是在这两个方法中进行,比如控制组项展开、组项点击、子项点击、子项被选中效果等等,这里笔者是自定义了回调接口来满足业务需求

87910

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

在Android开发中,列表可以说是最常见了,一般都是使用ListView,当涉及到二维数组时,更多使用到ExpandableListView,然而当数据结构比较复杂时,就需要使用三菜单或者更多级菜单来显示...,这就让人比较头疼了,最近做项目就涉及到了三菜单,遇到了不少问题,虽然不够完美,但是基本需求实现了,在此记录一下。...(之前见过有人使用ListView实现4、5甚至更多级菜单,是在Adapter数据源里定义结构,根据等级缩进左间距倍数,链接地址找不到了,有兴趣可以自己找找) 先上效果图: ? ?...只有一项,所以ExpandableListView总高度= * (ExpandableListViewchild数量 + 1 )* 每一项高度 * */ eListView.setOnGroupExpandListener...() .get(groupPosition).getChildNames().get(childPosition) .toString(); Toast.makeText( mContext, "点击下标

3.4K20

请解释如何实现算法 PERMUTE-BY-SORTING,以处理两个或更多优先相同情形。也就是说,即使有两个或更多优先相同

3.遍历排序后数组,对于每个元素,如果它具有更高优先,则将其插入到输出数组中。如果它与前一个元素具有相同优先,则随机选择一个作为后继元素,并将其插入到输出数组中。 4.返回输出数组。...对于两个优先相同情况,算法 PERMUTE-BY-SORTING 可以被解释使用一种贪心算法来选择一个最优序列。...2.生成一个随机数,用于决定每个元素在列表中位置。如果多个元素优先相同,则需要随机决定它们相对位置。 3.打乱排序后结果。可以使用随机数或硬币来随机决定元素相对位置。...我们可以将具有相同优先元素拆分成若干,每组内部元素相对顺序不改变,但之间元素顺序是随机。...接下来,将每个元素按照它们在这组内部个随机数字大小排列,从而得到这个子集随机排列。最后,将每组中随机排列合并起来就得到了具有相同优先所有元素随机排列。

11310

安卓ExpandableListView详细使用教程(附代码解析过程)

、实现效果   ExpandableListView又称可扩展ListView,简单来说长这个样: 每一个一布局下面又可以展开二布局。...二、实现步骤 使用ExpandableListView主要有三个步骤: 编写父布局 编写布局 适配器书写 1.编写父布局parent.xml   父布局其实很简单,就是两个并排TextView,用于展示课程名字和分数...child.xml   布局就是多个TextView列在一起,用于展示成绩详细信息: <?...都要继承BaseExpandableListAdapter这个类,并且必须重载getGroupView和getChildView这两个最为重要方法。...getGroupView(),返回外面那层布局视图,也就是各种课程名称以及分数: getChildView(),返回布局里面的视图,也就是每门学科详细信息: GradeAdapter详细代码

91920

【Android从零单排系列二十一】《Android视图控件——ExpandableListView》

适配器每个分组和子项提供数据,并负责渲染它们视图。 分组和子项布局:你可以定义自己分组项布局和子项布局,包括文本、图像和其他UI元素组合。通过适配器,将数据绑定到各个视图上。...创建适配器(Adapter):创建一个适配器类,并继承自 BaseExpandableListAdapter,实现必要方法以提供数据和视图绑定。...expandGroup(int groupPosition):展开指定位置(groupPosition)分组项。...collapseGroup(int groupPosition):折叠指定位置(groupPosition)分组项。...isGroupExpanded(int groupPosition):检查指定位置(groupPosition)分组项是否处于展开状态。

19010

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

int getChildrenCount(int groupPosition) { 3 //用来返回一个大标题内字标签数目,传入参数 groupPosition当前 4 //大标题下标,从0开始...(int groupPosition) { return groupPosition; //注意,它是从0下标开始 } 4-> //返回对应每个大标签...标签数目,传入 groupPosition 是当前大 //标签下标,.length 就是当前行列数 @Override public int getChildrenCount...-------------------------------------*/ 145 146 //获取在给定位置编号,即armTypes中元素ID 147...其他设置-------------------------------------------------------------------*/ 368 369 //孩子在指定位置是可选

1.7K70

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

PS:我们都知道微信,更是知道朋友圈,很多人在朋友圈里卖起了化妆品,打入广告等自己做一下推广,里面会附带一写好看图片,上面有标题,有描述,整体布局每场美观,那么这是怎么实现呢,有些人可能会单个使用...(父)长度 @Override public int getGroupCount() { return listGroup.size(); } 某个中child(...public long getChildId(int groupPosition, int childPosition) { return childPosition; } 元素是否持有稳定...,这里我解释一下list嵌套list,比如说一共是10个每个组里有一个子项目,每个子项目中又有2个图片 List> listChild = new ArrayList...,里面的是每个组里不一定有几个子(这里画了两个)。

1.2K30

linux线程调度策略

所有的调度都具有抢占性:如果一个具有更高静态优先线程准备运行,当前运行线程会被抢占并返回到其静态优先对应等待列表中。调度策略仅根据具有相同静态优先可运行线程列表来决定调度顺序。...线程优先时,该线程在列表中位置取决于优先变动: 如果线程优先增加了,它将会放置到新优先对应列表末尾,同时可能抢占正在运行具有相同优先线程; 如果线程优先没变,其在运行列表中位置不变...如果正在运行进程nice值负值,进程nice值会被设置0。...该任务父辈对应父cgroup 如果使能了autogrouping,则一个autogroup(即,使用setsid(2)创建相同会话)中所有线程一个任务。...每个autogrouping独立任务。root任务所有任务父辈。

4.6K30

十大经典排序,你都学废了吗?

希尔排序法基本思想是:先选定一个整数,把待排序文件中所有记录分成多个,所有距离记录分在同一内,并对每一记录进行排序。然后,取不同gap,重复上述分组和排序工作。...,右序列中所有元素均大于基准值,然后最左右序列重复该过程,直到所有元素都排列在相应位置上为止 上述快速排序递归实现主框架,发现与二叉树前序遍历规则非常像,大家在写递归框架时可想想二叉树前序遍历规则即可快速写出来...三数取中法选key 最左,最右,中间三个位置数进行比较,选出中等大小那个做key 2️⃣快排结构是类似于二叉树,二叉树最后几层数是最多,排序难度也很低,是否能够不递归到最小区间,中途就运用另一种排序方法返回有序数组给上一层来优化呢...将已有序序列合并,得到完全有序序列;即先使每个子序列有序,再使序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。(有微积分那味了) 4.1 归并排序非递归 5....有时候有些属性是有优先顺序,先按低优先排序,再按高优先排序。最后次序就是高优先在前,高优先相同低优先在前。

39820

Apriso开发葵花宝典之八Portal Session篇

Apriso门户 循环结束 回路2关闭 回路3关闭 弹出-关闭(刷新屏幕) 弹出关闭 返回Return:使用不同屏幕代码返回到上一个屏幕 ,如果没有前一个屏幕,那么它将退出到更高级别的屏幕堆栈 屏幕关闭...此列表每个元素包含给定操作的当前视图配置按钮所有操作。这些按钮仅限于当前屏幕和当前员工角色所允许按钮。...默认情况下,视图模板使用所有不带按钮,并将它们显示在视图UI底部。可以通过将相关HTML代码移动到不同位置来进行调整。...如果需要在不同位置显示两按钮(不同),请将按钮HTML代码复制到所需位置,并修改data- flex -filter表达式以匹配您(View Action: General选项卡上group...n第二优先:所有来自视图操作返回MergeOutputs输出设置True其他屏幕视图输出 Ø在动作分析期间:所有动作操作On Initialize or On Load Operation输出

6410

Python 中正则表达式全部用法速查

,返回匹配对象findall('字符串'[,起始位置[,结束位置]])找到并用列表返回所有匹配字符串finditer('字符串'[,起始位置[,结束位置]])找到并返回所有匹配成功匹配对象iteratorfullmatch...下方法返回相同  但是如果需要多次匹配,且正则表达式相同,则会进行很多次不必要编译  每个函数还能在后面传入一个可选标志参数,只能有一个标志   方法/属性 - re.方法名()功能match(...(g),允许更方便引用一个匹配groups(分组未匹配到内容默认值=None)返回一个元组,其中包含所有字符串,从1开始所有groupdict(分组未匹配到内容默认值=None)返回一个包含所有的命名子字典...分组扩展  基本操作  从0开始编号0始终存在,表示整个正则匹配对象方法以0默认参数从左到右从1向上编号。...语法定义命名: # \g 将使用名为 name 匹配字符串 # \g 使用相应号 # \g 等同于 \2 # \20 将被解释 20 引用 #

1.1K30

结构化并发

任务继承父任务某些结构,包括优先,但可以与之并发运行。但该并发有限制:创建任务函数必须等子任务结束才能返回。...关于如何处理优先的确切解释取决于每个平台和特定执行器实现。 任务自动继承父任务优先。独立任务不继承优先(或者任何其他信息),因为他们没有父任务。...,任务会一直等待,直到所有任务在返回前已经完成。...此等待可以通过以下方式执行: 通过任务内部代码(比如重复使用next()直到返回nil) 从body返回时,隐式在任务本身中 默认情况下,任务在全局默认并发执行器上调度加到任务。...每个任务都是创建任务任务任务,除了给定了一个优先之外,它们优先相同。通常来说,不推荐手动指定优先

2.8K40

​通路规划行为树(自动驾驶)

我们将命令以一航点(waypoints)方式发送到控制器,即通常以控制器采样时间固定间隔分布在轨道上离散点(按说彼此相近)。 ?...s坐标表示沿着路距离( 也称为纵向位移),d坐标表示路左右位置(也称为横向位移),r是路宽度(以米单位) • 当前位置(s,d) • 期望车道(s + 30,r *车道+(r / 2)) •...序列将按顺序访问每个子节点,从第一个开始,当成功时将调用第二个,依此类推子列表。如果任何一个节点失败,它将立即将失败归还给父节点。如果序列中最后一个节点成功,则序列将成功返回其父节点。...正常驾驶 优先选择器(Priority Selector) 非常简单,它与选择器相同,但以某种方式排序。如果使用优先选择器,则节点行为排序在列表中并一个接一个地尝试。...v=6qxCNcYnzPo 本文SIGAI原创

86430

数据结构——全篇1.1万字保姆吃透串与数组(超详细)

序号值:在之前学习过程中称为“索引值”,字符在串中位置串在主串中位置串在主串中首次出现时第一个字符在主串中位置。...串相等:两个串长度相同,且各个对应位置字符相同。...str); //*把str串连接到当前串后面 public int compareTo(IString str); //串比较,相同返回0,否则返回正/负 public int...//非零元素个数 } 三元表初始化操作         6.3三元表存储:矩阵转置                 6.3.1定义 矩阵转置:一种简单矩阵运算,将矩阵中每个元素行列序号互换...6.4三元表存储:快速矩阵转置                 6.4.1定义 假设:原稀疏矩阵N、其三元顺序表TN,N转置矩阵M,其对应三元顺序表TM。

1.8K60

JavaScript(十)

DOM 描绘了一个层次化节点树,允许开发人员添加、移除和修改页面的某一部分。 1998 年 10 月 DOM1规范成为 W3C 推荐标准,基本文档结构及查询提供了接口。...节点分为几种不同类型,每种类型分别表示文档中不同信息及(或)标记。 文档节点是每个文档根节点。文档节点只有一个节点,即 html 元素,我们称之为文档元素。...NodeList 是一种类数组对象,用于保存一有序节点,可以通过位置来访问这些节点。...,那结果就是将该节点从原来位置转移到新位置。...有两类特殊特性,它们虽然有对应属性名,但属性值与通过 getAttribute() 返回值并不相同。第一类特性就是 style,用于通过 CSS 元素指定样式。

66910

csapp 第八章 异常控制流 读书笔记

进程得到与父进程用户虚拟内存地址空间相同(但是独立)一份副本,包括代码和数据段、堆、共享库以及用户栈。...每个进程由相同用户栈、相同本地变量值、相同堆、相同全局变量值,以及相同代码。...8.5.2 发送信号 1.进程 每个进程都只属于一个进程,进程是由一个正整数进程ID来标识。getpgrp函数返回当前进程进程ID。默认,一个进程和它父进程同属于一个进程。...使用 setpgid 函数创建新进程时,若 pid 参数所指进程尚未加入任何进程,则可将其作为新进程组长进程(即进程 ID 与该进程 ID 相同),成功时返回 0,失败时返回 -1。...前台作业中父进程PID20,进程ID也是20.父进程创建两个子进程,每个也都是进程20成员。 在键盘上输入Ctrl+C会导致内核发送一个SIGINT信号到前台进程每个进程。

28560
领券