`
yesjavame
  • 浏览: 689448 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

创新源于模仿之四:增强的ExpandableListView

阅读更多

继续讨论一下如何实现手机QQ里那个增强版的ExpandableListView效果,如下图:

Android缺省的ExpandableListView的group header无法固定在界面上,当向下滚动后,不能对当前显示的那些child 指示出它们归属于哪个group,而这一点,在iphone中的tableview就做的非常好。

所以,我们来做一个固定在列表上方的提示框,显示当前显示的展开的那些child归属的group信息。

思路:
1. 先弄一个TextView作为指示器放在ListView的上面,跟列表上缘平齐。
2. 处理列表的上下滚动回调:

就这样了,是吧?

一切就这么简单,然后看看它放的位置是:

我为了省事,直接从TextView中派生出这个指示器,其实你可以更复杂点,从一个ViewGroup之类的东西来做出更多的效果。

细心的朋友可以发现了,在QQ中,当上移列表时,有一个效果是下一个group header将指示器给推出屏幕的,图省事,我没这样做,留给兄弟你去扩展了。

此外,反编译QQ的代码可知,其实它的实现是自己做了一个叫 IphoneTreeView的类,继承了ExpandableListView,这样做更灵活也更好,同样,如果要实现更完美的效果,还有很多事情要做的。

最近想学习一下iphone的开发,有点没动力继续写这个题目了。所以,只是在这儿抛砖引玉罢了,如果你们做出了更好的效果,请拿出来共享。

先谢谢了!

分享到:
评论

相关推荐

    模仿QQ好友列表的ExpandableListView实现的效果

    模仿QQ好友列表的ExpandableListView实现的效果 现在已实现一个封装好的类出来,只需要把此控件放到RelativeLayout容器中,然后在其Adapter的自定义对象中实现一个HideGroup方法。就可以在Activity里不使用代码实现...

    expandablelistview_example:Android ExpandableListView

    在Android开发中,`ExpandableListView`是一种常用的控件,它允许用户展示可折叠的列表,其中每个父项可以展开显示一个或多个子项。这种控件非常适合于展示层次结构清晰的数据,例如目录结构、菜单选项或者分类信息...

    android ExpandableListView 四级树形目录

    在这个案例中,我们讨论的是如何利用`ExpandableListView`创建一个支持四级深度的树形目录。这样的功能在文件管理系统、组织结构展示或者导航菜单中非常常见。 `ExpandableListView`是`ListView`的一个扩展,它允许...

    自定义ExpandableListView 、Json解析、短信等

    主要四部分内容:自定义ExpandableListView ,Json解析,短信,DatePickerDialog Json解析格式: { "help_count": "16", "date": "2012-06-15", "items": [ { "title":"PP(通讯达人)是什么?", "content":"PP...

    DbnExpandableListView:扩展ExpandableListView

    DbnExpandableListView是针对Android平台的一个开源项目,它扩展了原生的ExpandableListView组件。在Android开发中,ExpandableListView是一个常用的视图控件,用于显示可折叠的子列表,非常适合展示层次结构的数据...

    ExpandableListExample:使用ExpandableListView的简单例子

    在Android开发中,`ExpandableListView`是一种常用的控件,它允许用户展开和折叠分组,每个分组下可以包含多个子项。这个控件在显示层次结构数据时非常实用,比如目录结构、菜单或者组织架构等。在这个...

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

    在Android开发中,创建复杂的数据展示结构,如树形菜单,常常需要用到`ExpandableListView`。这个控件允许我们展示可展开和折叠的列表项,非常适合构建层级结构的数据。在这个项目中,我们将深入探讨如何利用Java...

    Android开发实战经典-020719树型组件:ExpandableListView源代码和视频教程.zip

    Android开发实战经典_020719树型组件:ExpandableListView源代码和视频教程.zip

    自定义ExpandableListView带CheckBox全选的功能

    ExpandableListView中group和child自定义视图带CheckBox,实现child全选、部分选中功能,同时实现类似邮件群发的用户选择功能,选中的用户在EditText中显示,点击后移除. 更新: 1. ExpandableListView勾选后生成的...

    ExpandableListView实现Android购物车

    在Android应用开发中,"ExpandableListView实现Android购物车"是一个常见的需求,它涉及到用户界面设计、数据管理和交互。ExpandableListView是Android SDK提供的一种视图组件,用于展示可展开和折叠的列表,非常...

    自定义布局模仿ExpandableListView

    本文将深入探讨如何通过自定义布局来模仿ExpandableListView的功能。 首先,我们需要理解ExpandableListView的基本工作原理。这个控件包含两层数据结构:父级(Group)和子级(Child)。父级表示可以展开或折叠的...

    多级列表ExpandableListView(模仿QQ)

    综上所述,创建一个模仿QQ界面的多级列表,主要涉及`ExpandableListView`的使用、自定义适配器、数据模型的设计以及监听器的设置。在实际开发中,根据具体需求,你可能还需要关注性能优化、异步加载数据等方面的知识...

    ExpandableListView.zip

    在Android开发中,`ExpandableListView`是一种常用的控件,它允许用户展示可折叠的列表,其中每个组(Group)可以包含多个子项(Child)。这个控件在展示层次结构数据时非常有用,例如菜单、目录或者组织结构。在本...

    安卓Android源码——模仿QQ的扩展型很好的ExpandableListView.rar

    这个压缩包文件“安卓Android源码——模仿QQ的扩展型很好的ExpandableListView.rar”显然是一个示例项目,用于演示如何创建一个类似于QQ应用中的可扩展列表视图。下面我们将详细讨论`ExpandableListView` 的相关知识...

    ExpandableListView

    2. **头部和尾部视图**:可以为`ExpandableListView`添加固定在顶部或底部的视图,增强界面设计。 3. **动画效果**:可以通过设置`ExpandableListView`的属性来控制展开和折叠的动画效果。 4. **可扩展性**:`...

    ExpandableListView(实现ListView嵌套ListView的效果)

    在Android开发中,`ExpandableListView`是一种非常实用的控件,它允许开发者创建具有可扩展行的列表,也就是我们常说的嵌套列表。这种控件可以用来展示层次结构的数据,比如目录结构、菜单选项或者复杂的分类信息。...

    ExpandableListview

    在Android开发中,`ExpandableListView`是一种非常实用的视图组件,它允许用户展示一个可折叠的列表,其中每个父项(Group)都可以展开显示一个或多个子项(Child)。这种视图常用于需要组织层次结构数据的场景,如...

    ExpandableCustomListview:自定义 ExpandableListview 的基本用法 - Android

    可扩展自定义列表视图自定义 ExpandableListview 的基本用法专为@Sudheesh Mohan 设计的项目如果您有任何问题,请发送邮件至: ► 你是安卓程序员吗? 加入我们的 Android 开发者团队

    ExpandableListview评论回复

    在Android开发中,`ExpandableListView`是一种常用的控件,它允许用户展示可折叠的列表,通常用于层次结构数据的显示,例如目录结构、菜单或者像QQ空间评论回复这样的社交应用功能。`ExpandableListView`提供了更加...

    Android-用ListView模仿ExpandableListView

    为了模仿ExpandableListView,我们需要创建两种类型的视图:一种用于父项,另一种用于子项。在`getItemViewType()`中,我们可以根据数据模型的属性来判断当前item是父项还是子项,然后返回相应的视图类型。例如,...

Global site tag (gtag.js) - Google Analytics