`
250367976
  • 浏览: 26855 次
社区版块
存档分类
最新评论

备忘——仿QQ分组ExpandableListView(差强人意)修改过

阅读更多

网上查了下,然后知道就是在ExpandableListView上加个LinearLayout当指示器(不管是什么,一样效果就行,像QQ是自定义控件,很强大,可惜他不放源码出来),,,

 

xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <ExpandableListView
        android:id="@+id/expandableListView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:groupIndicator="@null"
        android:background="@color/whilte" >
    </ExpandableListView>

    <LinearLayout
        android:id="@+id/listView_guide"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:background="@color/whilte"
        android:orientation="vertical" >

    </LinearLayout>

</RelativeLayout>

 Activity:

OnClickListener myoClickListener = new OnClickListener() {

		@Override
		public void onClick(View v) {
			// TODO Auto-generated method stub
			expandableListView_relationship.collapseGroup(gruopNum);
			listGuide.setVisibility(View.GONE);
		}
	};

	OnScrollListener myoOnScrollListener = new OnScrollListener() {
		
		@Override
		public void onScrollStateChanged(AbsListView view, int scrollState) {
			// TODO Auto-generated method stub

		}

@Override
		public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
			// TODO Auto-generated method stub
			TextView textNum = (TextView) view.findViewById(R.id.textView_num);//组标记			
			if (textNum != null) {
				gruopNum = Integer.valueOf(textNum.getText().toString());// 在adapter手动存
				if (expandableListView_relationship.isGroupExpanded(gruopNum)) {
					TextView childNum = (TextView) view.findViewById(R.id.child_num);//child标记
					// 已经打开
					int childCount = adapter.getChildrenCount(gruopNum) - 1;
					if(childCount<0){
      //没有child的,返回
      listGuide.setVisibility(View.GONE);  
      return;
     }
					if (childNum != null) {
						int childnum = Integer.valueOf(childNum.getText().toString());// 在adapter手动存				
						if (childCount == childnum) {
							// 最后一个child
							listGuide.setVisibility(View.GONE);		
							return;
						}
					}					
					listGuide.setVisibility(View.VISIBLE);
					gruopView = adapter.getGroupView(gruopNum, true, gruopView, null);//重新进来时,gruopView=null, 不然会报removeView()的错
					if(isFist){
						listGuide.addView(gruopView);
						isFist = false;
					}
					listGuide.invalidate();
				} else {
					listGuide.setVisibility(View.GONE);
				}				
			}
		}
	};

 

分享到:
评论

相关推荐

    安卓Android源码——自定义适配器的ExpandableListView.zip

    这个压缩包文件"安卓Android源码——自定义适配器的ExpandableListView.zip"包含了一份关于如何在Android应用中自定义适配器以实现`ExpandableListView`功能的详细教程和示例代码。 首先,我们要理解`...

    安卓Android源码——自定义适配器的ExpandableListView.rar

    这个压缩包文件"安卓Android源码——自定义适配器的ExpandableListView.rar"包含了一份关于如何在Android应用中自定义`ExpandableListView`适配器的详细文档(自定义适配器的ExpandableListView.doc)以及一个实际的...

    基于Android的仿QQ好友分组ExpandableListView设计源码

    本项目是基于Android开发的仿QQ好友分组ExpandableListView,包含71个文件,其中包括49个PNG图像、10个XML配置文件、6个Java源代码文件、1个gitignore文件、1个Markdown文档、1个Gradle构建文件、1个Idea配置文件、1...

    Android 仿QQ好友分组,ExpandableListView的使用详解demo

    在Android开发中,有时我们需要创建一个可展开和折叠的列表,以展示层次结构的数据,比如模仿QQ的好友分组功能。这就是ExpandableListView的作用。它是一个特殊的ListView,能够支持子项的扩展和收缩,非常适合用来...

    ExpandableListView仿QQ列表的实现

    这个"ExpandableListView仿QQ列表的实现" demo旨在教你如何利用`ExpandableListView`创建类似QQ应用的功能,提供一个交互性强、层次清晰的界面。 首先,`ExpandableListView`是`ListView`的扩展,它允许每个条目有...

    Android源码——仿QQ多级列表框源码.zip

    这个"Android源码——仿QQ多级列表框源码.zip"压缩包提供了一种实现此类功能的方法。接下来,我们将深入探讨相关知识点。 1. 多级列表(Nested ListView): 在Android中,为了实现多级列表,开发者通常会使用...

    Android 仿QQ列表 ExpandableListView

    滑动的时候title会根据子项固定在最上方。 带下拉刷新,上拉加载,真机测试没有问题, 10分因为花费很多精力去写,请见谅

    Android 利用ExpandableListView显示和查询仿QQ分组列表用户信息

    `ExpandableListView`是Android提供的一个可扩展的列表视图,它可以展示分组数据,每组数据下还可以包含多个子项,这种结构与QQ的分组列表用户信息展示方式非常相似。在本项目中,我们将利用`ExpandableListView`来...

    安卓Android源码——仿QQ多级列表框源码.zip

    这份“安卓Android源码——仿QQ多级列表框源码.zip”压缩包提供了一种实现此类功能的方法。下面,我们将详细讨论相关知识点。 首先,源码中的核心组件很可能是自定义的ListView或者RecyclerView,因为这两种控件是...

    用expandablelistview实现qq好友分组

    在Android开发中,ExpandableListView是一个非常实用的控件,它可以展示可展开和折叠的列表,非常适合用来模拟QQ好友分组这样的场景。本教程将详细讲解如何利用ExpandableListView实现类似QQ好友分组的功能。 首先...

    安卓Android源码——基于自定义适配器的ExpandableListView源码.zip

    在安卓开发中,`ExpandableListView` 是一个非常重要的组件,它允许用户展示层次结构的数据,比如目录结构、菜单选项等。本项目是关于如何在Android应用中实现一个基于自定义适配器的`ExpandableListView`。适配器是...

    ExpandableListView仿QQ好友列表

    在Android开发中,`ExpandableListView`是一种常用的控件,它允许用户展开和折叠不同的组,每个组下可以包含多个子项,非常适合用于构建类似QQ好友列表这样的分组数据展示。`ExpandableListView`提供了更丰富的交互...

    仿QQ我的好友界面ExpandableListView应用

    在Android开发中,"仿QQ我的好友界面ExpandableListView应用"是一个常见的需求,它涉及到对ExpandableListView组件的深入理解和定制。ExpandableListView是Android SDK提供的一种可扩展的列表视图,它可以显示分组...

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

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

    Android源码——基于自定义适配器的ExpandableListView源码.zip

    本资源提供的"Android源码——基于自定义适配器的ExpandableListView源码.zip"包含了实现这一功能的具体代码示例,通过分析这些代码,我们可以深入理解如何自定义适配器来有效地使用ExpandableListView。 首先,让...

    Android ExpandableListView用法实例:仿QQ界面分组列表.rar

    本源码将演示Android ExpandableListView的用法,制作一个类似QQ界面的好友分组列表展开收缩效果,为什么最开始没有使用ListView呢?因为ListView只能显示一级列表,如果实现像QQ好友列表那样的效果,就需要用到...

    安卓Android源码——基于自定义适配器的ExpandableListView.zip

    这个压缩包“安卓Android源码——基于自定义适配器的ExpandableListView.zip”提供了关于如何使用自定义适配器来操作这种列表视图的示例代码。 首先,`ExpandableListView`是`ListView`的扩展,增加了可扩展性,使...

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

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

    安卓Andriod源码——一个ExpandableListView的例子,实现多级菜单分类展示.zip

    在Android开发中,ExpandableListView是一个非常实用的控件,它可以用来展示具有层级关系的数据,例如多级菜单、目录树等。本示例是关于如何使用Android源码创建一个ExpandableListView来实现多级菜单分类展示的具体...

Global site tag (gtag.js) - Google Analytics