用ExpandableListView实现类似QQ好友列表
ExpandableListView是一个用来显示二级节点的listview。
qq好友列表中子列表上下移动时,父节点在顶端会始终显示,这里我们可以自定义一个view来充当这个父节点。
主布局文件qq_listview如下,其中当我们拖动列表时,系统默认拖动过程中列表背景是黑的,我们可以通过android:cacheColorHint="#00000000"将其设置为透明,其中前两位是透明效果参数(00-99),后六位是颜色的设置。
Xml代码
1. 2. 8. 16. 19. 21. 22. 24. 27. 28.
如果我们想更换父节点打开和关闭时的箭头,可以先设置一个selector.xml
Java代码
然后在代码中调用
Java代码
elistview = (ExpandableListView)findViewById(R.id.qq_listview); //替换ExpandableListView的打开关闭时的箭头图标 elistview.setGroupIndicator(this.getResources().getDrawable(R.drawable.expand_list_selector));
此外,我们还要设置父节点和子节点item的布局文件
父节点qq_list_parent.xml如下
Java代码
子节点qq_listview_child.xml
Java代码
java代码如下
Java代码
package com.sy.android.qqlistview;import java.util.ArrayList;import java.util.HashMap;import java.util.Map;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.AbsListView;import android.widget.AbsListView.OnScrollListener;import android.widget.ExpandableListView;import android.widget.ExpandableListView.OnGroupCollapseListener;import android.widget.ExpandableListView.OnGroupExpandListener;import android.widget.LinearLayout;import android.widget.SimpleExpandableListAdapter;import android.widget.TextView;import com.sy.android.testAndroid.R;public class QQListView extends Activity { private static ArrayList
实现的思路是通过setOnScrollListener来监听listview,从而获得显示在视图中的item的id,通过id的判断来决定显示在顶端的自定义的view是否显示
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
暂时没有评论,来抢沙发吧~