在Android开发中,列表可以说是最常见的了,一般都是使用ListView,当涉及到二维数组时,更多的使用到ExpandableListView,然而当数据结构比较复杂时,就需要使用三级菜单或者更多级的菜单来显示...,这就让人比较头疼了,最近做的项目就涉及到了三级菜单,遇到了不少问题,虽然不够完美,但是基本需求实现了,在此记录一下。...(之前见过有人使用ListView实现4级、5级甚至更多级菜单的,是在Adapter的数据源里定义的结构,根据等级缩进左间距的倍数,链接地址找不到了,有兴趣的可以自己找找) 先上效果图: ? ?...首先第一个要处理的问题是在AdpOne的getChildView方法中,需要对EListTwo的高度进行动态计算,因为EListTwo展开和关闭时高度是不一样的,所以要在EListTwo的setOnGroupExpandListener...和setOnGroupCollapseListener方法中做相应的处理: /** * @author Apathy、恒 * * 子ExpandableListView展开时,因为group
类似ListView,ExpandableListView也是通过Adapter来管理其包含的各种元素和操作,这里我们创建一个扩展自BaseExpandableListAdapter的Adapter。...它通过getGroupView()渲染Group项,通过getChildView()渲染列表子项。...在这里要注意,由于列表子项包含了CheckBox,所以为了使点击事件不要被CheckBox捕获,我们需要创建一个扩展自CheckBox的类来屏蔽鼠标和键盘事件。...Adapter中的方法getChildView()需要实现鼠标点击监听器: public View getChildView(final int groupPosition, final int childPosition...所以,为了解决这个问题,我在adapter里增加了一个二维表用于记录每一列表项的check状态。
概述 本节课介绍Android中可实现二级可展开收缩列表的ExpandableListView容器,笔者感觉它非常难用并且难理解,很多时候我们可能需要对控件进行扩展和定制,然而它不太方便扩展,它使用难点主要在数据结构上和对控件的事件监听...,其他的实现方式类似ListView,下面会提供笔者在实际开发中使用到的案例。...上面实现的效果可展开的二级列表,每个组项都可能有若干个子项,默认的ExpandableListView不太美观,我们需要通过自定义布局类美化它,在使用过程中有一些需要我们去了解的点,会在实现过程提一下。...除了一个组项,每个组项下面有若干个子项,我们在使用的时候首先要确定要展示的数据结构,组项有groupPosition来标识位置,然而子项需要根据groupPosition和ChildPosition来标识位置...,我们设置数据的时候分别在getGroupView和getChildView方法来设置组视图和子项视图数据,最后返回填充数据的视图对象,一些逻辑控制的代码也是在这两个方法中进行,比如控制组项的展开、组项的点击
上一期学习了AutoCompleteTextView和MultiAutoCompleteTextView,你已经掌握了吗?本期开始学习ExpandableListView的使用。...一、认识ExpandableListView ExpandableListView 是 ListView 的子类,它在普通ListView的基础上进行了扩展,它把应用中的列表项分为几组,每组里又可包含多个列表项...扩展 BaseExpandableListAdapter 实现 ExpandableListAdaptero。...getChildView():该方法返回的View对象将作为特定组、特定位置的子列表项。...至此,关于ExpandableListView的简单使用学习完毕,更多属性和方法建议多加练习并掌握。
、实现效果 ExpandableListView又称可扩展的ListView,简单来说长这个样: 每一个一级布局下面又可以展开二级布局。...二、实现步骤 使用ExpandableListView主要有三个步骤: 编写父布局 编写子布局 适配器的书写 1.编写父布局parent.xml 父布局其实很简单,就是两个并排的TextView,用于展示课程名字和分数...的Adapter都要继承BaseExpandableListAdapter这个类,并且必须重载getGroupView和getChildView这两个最为重要的方法。...getGroupView和getChildView两个方法我举getGroupView来详细讲解: public View getGroupView(int i, boolean b, View convertView...static class GroupHolder { TextView tv_course_name; TextView tv_mark; } 里面包含了父布局的所有数据属性,我们在getGroupView
简介 在日常的开发中,有可能会遇到需要一些可以展开的列表,比如QQ的好友列表,电商的购物车折叠显示。...elv_collocation.expandGroup(0); } } CollocationListAdapter.java CollocationListAdapter负责数据的填充,主要注意两个方法:getGroupView和getChildView...isExpanded) { //设置套餐折叠时显示套餐商品的图片 initGoodsImage(collocationPackageBean, parentViewHolder..., groupPosition); } return convertView; } @Override public View getChildView...= (TextView) view.findViewById(R.id.tv_collocation_price); } } /** * 初始化并设置套餐折叠时的所有商品图片
一 ExpandableListView基本介绍 ExpandableListView是Android中的一个可扩展列表视图,它继承自ListView,并提供了支持展开和折叠的功能。...ExpandableListView可以展示带有分组和子项的层次结构数据,让用户可以方便地通过展开和折叠操作来浏览和查看更多的内容。...二 ExpandableListView使用方法 在 XML 布局文件中添加 ExpandableListView: <ExpandableListView android:id="@+id/...childList.get(childPosition) : null; } // 其他方法... } 在代码中设置适配器和监听器: // 获取 ExpandableListView...四 总结 ExpandableListView提供了一种方便的方式来展示具有层次结构的列表数据,并允许用户通过展开和折叠操作来浏览更多内容。它通常用于菜单、分类列表、可折叠的评论或帖子等场景。
前言 在Android的日常开发中,评论与回复功能是我们经常遇到的需求之一,其中评论与回复列表的展示一般在功能模块中占比较大。...第一张图是我们设计给我找的,他说要按照这个风格来,尽量将评论和回复内容在一个页面展示。好吧,没办法,毕竟我们做前端的,UI要看设计脸色,数据要看后台脸色��。...无意中看到expandable这个关键词,我突然想到谷歌很早之前出过一个扩展列表的控件 – ExpandableListView,但听说比较老,存在一些问题。...在默认情况下会为我们自带分组的icon(▶️),当前需求下,我们根本不需要展示,可以通过expandableListView.setGroupIndicator(null)来隐藏。...和setOnGroupCollapseListener来监听ExpandableListView的分组展开和收缩的状态。
简介 在日常的开发中,有可能会遇到需要一些可以展开的列表,比如QQ的好友列表,电商的购物车折叠显示。...Android也给我们提供ExpandableListView类,完美实现这样类似的需求, 极大的方便了我们开发。结合之前的项目我们做一个简单的讲解。...elv_collocation.expandGroup(0); } } CollocationListAdapter.java CollocationListAdapter负责数据的填充,主要注意两个方法:getGroupView和getChildView..., groupPosition); } return convertView; } @Override public View getChildView...= (TextView) view.findViewById(R.id.tv_collocation_price); } } /** * 初始化并设置套餐折叠时的所有商品图片
实现效果图: expandableListView groupIndicator 图片默认是在左边,而且比较难看,而我要的是实现groupIndicator 在右边自定义图片, 换图片 最简单的就是直接...然后在适配器上getgroupView 设置父布局,在getChildView设置子布局。和listView的差不多。...现在要做的就是设置监听 监听ImageView expandableListView 的点击事件,这里我是点图片展开和关闭Child,长点击expandableListView 也展开和关闭Child,...gh.p_w_picpath.setOnClickListener(new ImageListener(Imageposition)); return convertView; } @Override public View getChildView...ch.tv_up.setOnClickListener(new OnClickListener() { @Override public void onClick( View v ) { // TODO 子控件更新
距离上次更新,时隔略长,诸事繁琐,赶在去广州答辩之前,分享下安卓 android 中的一个 列表收缩 类---ExpandableListView 先上效果图: 如果想直接看实现此页面的代码请下滑到...我在这里主要通过源代码的注释和必要的说明,说明如何实现自定义的收缩列表。...必要的函数: 0-> 1 ExpandableListView expandListView = (ExpandableListView) this.findViewById(R.id.ecpandable...{"aa",}, 139 {"xxxx",}, 140 }; 141 142 /*===========组元素表示可折叠的列表项...-其他设置-------------------------------------------------------------------*/ 368 369 //孩子在指定的位置是可选的
绑定单元格区域之后,如果你在数据源中删除或增加了一列,Spread控件并不会自动进行更新。 Spread控件中的数据源和单元格区域是由MapperInfo类控制的。它们之间通过行同步进行相互同步。...如果用户在现有的单元格区域下面添加了新的一行,那么单元格区域会扩展一行,并对MapperInfo类和数据源进行扩展,反之亦然。如果新添加的行位于绑定区域的外面,那么它不会被添加到绑定区域中。...如果用户在现有的单元格区域下面添加了新的一行,那么单元格区域会扩展一行,并对MapperInfo类和数据源进行扩展,反之亦然。如果新添加的行位于绑定区域的外面,那么它不会被添加到绑定区域中。...用户可以通过点击展开和折叠图表(加号和减号标识)展开或者折叠层次组织的层级。 ?...你可以自定义单元格类型,颜色,标题,以及子表单的其它方面的外观设置。 你可以绑定到一个层次化的集合上。 如果你要为表单设置皮肤,你必须把皮肤应用到父表单和所有的子表单上。
refreshSelectedAndTotalPriceAndTotalNumber(); } @Override public void onProductCheckedChange(int i, int i1) { //点击商品得checkbox...adapter.notifyDataSetChanged(); //B.刷新底部数据 refreshSelectedAndTotalPriceAndTotalNumber(); } }); } } }); } //B.刷新checkbox状态和总价和总数量...){ mOnCartListChangeListener.onSellerCheckedChange(i); } } }); return view; } @Override public View getChildView...; int num = list.get(j).getNum(); totalPrice+=price*num; } } } return totalPrice; } //C.当商品组的全选框点击时,更新所有商品的状态...1 :0); } } //C.当商家子条目的全选框选中时,更新其状态 public void changeCurrentProductStatus(int i , int i1){ CartInfo.DataBean
简介本次内核升级:Cloud Studio 内核版本从 v1.69.1 升级到了 v1.71.0;同时支持协作插件的参与者人数限制由 3 人提升到了 10 人,并且提供了更丰富的官方建站模版。...这次内核升级,主要包含如下亮点:默认显示命令中心 - 用于搜索文件、运行命令和导航光标历史记录。标题栏自定义 - 隐藏/显示菜单栏、命令中心或布局控制。折叠选择 - 在编辑器中创建您自己的折叠区域。...树视图搜索和过滤 - 在查找资源管理器等树视图中查找和过滤。丰富的代码操作 - 在代码编辑器中方便快速使用代码操作,从而对代码块进行抽取、重构等操作。...默认显示命令中心通过命令中心,可以方便地搜索文件、运行命令和导航光标历史记录,如下图所示: 标题栏自定义Cloud Studio 默认已经显示了命令中心,您也可以在顶部菜单栏上右键选择隐藏/显示菜单栏、...循环语句包住,如下图所示:写在最后上面只列出的部分相对重要的更新内容,本次更新在工作区、编辑、终端、源代码控制、调试、笔记本、语言、扩展点等各个方面都有了很大的升级。
,快速介绍了多项重要的更新: 正式发布 5400 亿参数大模型 PaLM 2,已为 Google 旗下产品 25 项产品赋能。...在推理方面,PaLM 2 的数据集包括科学论文、大量涵盖数学公式的各类网页,提高了模型的逻辑、常识推理和数学能力。 在程序语言方面,PaLM 2 在海量开源代码的基础上进行了预训练。...在 Bard 演示的环节强调了其可扩展性,例如使用 Bard 写代码可以一键拖拽至 Colab 直接运行。...就目前展示和线上试用的效果而言,这些能力对比当前 ChatGPT ,Bard 仅仅做到了追赶,少部分功能的实用性让人眼前一亮。...Google 推出首个折叠屏手机 Pixel Fold 在消费者产品方面,本次 I/O 的亮点是 Google 正式推出了首款折叠屏手机 Pixel Fold。
可以观看 可折叠设备,平板电脑和大屏幕更新一览 了解更多详情。 可折叠的屏幕也为大型设备提供了更好的人机工程学效果。折叠后,您可以把原本和平板电脑一般大的屏幕放进口袋里,这是以往的便携设备无法做到的。...我们看到,用户对大屏幕的需求也延伸到了平板电脑,鉴于两者类似的应用体验,平板电脑的受欢迎程度现在也已经大幅增加。...△ 在 Chrome OS 设备上使用 Android 应用的用户通常会配置实体键盘;应用应该支持标准的键盘导航和快捷键,以提供更全面的无障碍使用体验 组件更新 我们更新了 Jetpack 和 Material...△ SlidingPaneLayout 在我们的示例应用 IOSched 中使用的情况 我们已经更新了该库,以识别和适应 折叠和铰链。...大多数应用无需更新即可受益于这一变更。最明显的例外则是当您的应用使用了独占资源,如麦克风或摄像头的时候。这方面的更多细节请参阅我们 之前的博文。
因为在不同的大小屏幕的手机上获取控件的坐标点,不是一样的,而是有变化的,因此在不同的手机机型上,我们可能都需要重新获取坐标点,这么操作起来,如果操作控件特别的多,那么获取控件的坐标点就会显得特别的繁琐。...下面就HierarchyViewer从打开方式和使用两方面进行讲解。...当前的父节点右下角的角标,不需要在getChildView函数中显示。 这样,通过以上函数,再结合Hierarchyviewer图形,我们获取到了重复的控件ID。...由于Hierarchyviewer看起来不是特别方便,这里再推荐一款和Hierarchyviewer类似功能的工具:uiautomatorviewer(存储在sdk\tools中,双击打开即可) ?.../province_list',5,0,0) 获取到了不存在或重复的控件ID后,我们可以通过其坐标,进行点击操作。
除用户隐私方面的特性更新之外,Android Q 还为开发者们带去了许多新功能,如折叠屏增强项、新网络连接 API、全新的媒体解码器、摄像头新功能、NNAPI 扩展、Vulkan 1.1 图形支持等等。...在 Beta 1 发布之后,大家的踊跃反馈再次证明了开放的价值所在——这些反馈明确、清晰而且富有价值。我们收到了数千份错误报告,也收获了许多洞见与指向性反馈。...测试隐私特性并给予反馈 正如我们在发布 Beta 1 时表示的一样,Android Q 在之前几个版本的基础上,大幅提升了用户隐私方面的安全防护。...7.3 英寸折叠平设备切换折叠/展开状态 在平台方面,我们对onResume和onPause 进行了多项改进,以便为 multi-resume 提供更好的支持,此外,我们还添加了应用获得焦点后的通知功能...更多实现系列,请查看更新后的示例应用。 指向性且可变焦的麦克风 在音频采集方面,Android Q Beta 2 利用新的 MicrophoneDirection API 给予应用更多控制。
正如文章中摘录的朴茨茅斯大学结构生物学教授John Mcgeehan所言: 我们花了几个月甚至几年的时间才做到的事,AlphaFold在一个周末就做到了。...为了更加清楚得了解AlphaFold为什么引起这么大的轰动,以及AlphaFold究竟做到了什么,我们得再回顾一下DeepMind另一篇雄文。...不过,在细胞中,蛋白质的存在是三维的,不同蛋白质的功能很大程度上取决于其独特的3D结构。所以说,搞清楚蛋白质的折叠结构可以帮助我们更好地理解蛋白质的功能和工作原理,这类问题被称为“蛋白质折叠问题”。...诺贝尔奖得主、皇家学会主席Venki Ramakrishnan表示: 这项计算工作代表了蛋白质折叠问题上的一个惊人进步,蛋白质折叠问题是生物学上一个跨越50年的巨大挑战……它将在许多方面从根本上改变生物学研究...相比而言,AlphaFold2则在很短的时间内,破译了几乎整个人类蛋白质组(98.5%的人类蛋白质)的结构,其中有35.7%的残基落在最高精度带内,相当于目前人类通过实验所得结构数量(17%)的两倍,极大地扩展了蛋白结构覆盖率
领取专属 10元无门槛券
手把手带您无忧上云