Android之ExpandableListView的属性(Group不展开)

1. 设置ExpandableListView 默认是展开的: 
先实例化exListView 然后

    exListView.setAdapter(exlvAdapter);
    //遍历所有group,将所有项设置成默认展开
     intgroupCount = exListView.getCount();
    for (inti=0; i<groupCount; i++)
     {
           exListView.expandGroup(i);
     };   

2. 去掉ExpandableListView 默认的箭头 
用到ExpandableListView时有个箭头图标系统自带的在你自定义布局也不能去掉只要设置一个属性即可,如下: 
settingLists.setGroupIndicator(null); ~~~~~~~~~~~~~~~~~此处就是设置自定义的箭头图标的。置空则没有了。  
也可以自定义(但是位置还是在那个地方不推荐)如下: 
首先,自定义一个expandablelistviewselector.xml文件,具体内容如下: Java代码

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
         <item android:state_expanded="true" android:drawable="@drawable/expandablelistviewindicatordown" />
          <item android:drawable="@drawable/expandablelistviewindicator" />
     </selector>   

加一句代码如下:

    settingLists.setGroupIndicator(this.getResources().getDrawable(R.layout.expandablelistviewselector));
    或xml设置:
        android:groupIndicator="@drawable/groupIndicator_selector"  

3. 将默认的箭头修改到右边显示: 
 
1首先ExpandableListViewelistview;

elistview.setGroupIndicator(null);//将控件默认的左边箭头去掉,

2在自定义的继承自BaseExpandableListAdapter的adapter中有一个方法

    /** * 父类view */    @Override
    public View getGroupView(intgroupPosition, booleanisExpanded, View convertView, ViewGroup parent)
    { Log.i("zhaoxiong","parent view");
         LinearLayoutparentLayout=(LinearLayout) View.inflate(context, R.layout.wowocoupons_parent_item, null);
        TextViewparentTextView=(TextView)parentLayout.findViewById(R.id.parentitem);
        parentTextView.setText(parentlist.get(groupPosition));
        ImageViewparentImageViw=(ImageView) parentLayout.findViewById(R.id.arrow);
        //判断isExpanded就可以控制是按下还是关闭,同时更换图片
       if(isExpanded){
           parentImageViw.setBackgroundResource(R.drawable.arrow_down);
        }else{
            parentImageViw.setBackgroundResource(R.drawable.arrow_up); }
         return parentLayout;
    }  

expandablelistview响应onGroupClick监听:设置expandablelistview.setOnGroupClickListener()
折叠和展开事件,可以设置setOnGroupCollapseListener和setOnGroupExpandListener

ExpandableListView中包含多个group,想要展开一个group时,其他group都关闭:

    exList.setOnGroupExpandListener(new OnGroupExpandListener() {    

            @Override
            public void onGroupExpand(int groupPosition) {
                for (int i = 0; i < getData().size(); i++) {
                    if (groupPosition != i) {
                        exList.collapseGroup(i);
                    }
                }    

            }    

        });  

3.expandablelistview的Group点击事件,onGroupClick的返回值false展开,true不展开

  tt_list.setOnGroupClickListener(new OnGroupClickListener() {  

            @Override
            public boolean onGroupClick(ExpandableListView parent, View v,
                    int groupPosition, long id) {
                IsFlag=true;  

                if(adapter.getGroupData().get(groupPosition).getList().size()==1){
                    Bundle b=new Bundle();
                    b.putInt("saveIndex", 0);
//                  b.putString("mac", mac);
//                  b.putString("deviceId", mDeviceId);
                    b.putSerializable("datalist", adapter.getGroupData().get(groupPosition).getList());
                    Intent i=new Intent(WappushBindingActivity.this,VideoPlayerActivity.class);
                    i.putExtras(b);
                    startActivity(i);
                }
//              int groupCount = tt_list.getCount();
//              for (int i=0; i<groupCount; i++){
//                  if(i!=GroupPosition)
//                      tt_list.collapseGroup(i);
//               };
//              Log.v("xulongheng*WappushBind*tt_list", "onGroupClick:"+previousX+"/"+previousY);
                return true;   //默认为false,设为true时,点击事件不会展开Group
            }
        });  
时间: 2024-10-11 14:50:13

Android之ExpandableListView的属性(Group不展开)的相关文章

使用ExpandableListView——当有Group选项展开时,如何正确获取长按的Group选项。

当我们使用ExpandableListView时,实现点击一个GroupView则展开ChidView,那么这个时候,Adapter的大小前后是有变化的. 例如:假设有20个GroupView,每个GroupView都有一个ChildView.当全部GroupView都没有被展开的时候,Adapter的size是20:而当我们展开一个GroupView,显示出一个ChildView的时候,Adapter的size就增加了1.这个必须了解的. 当我们需要添加长按每一个GroupView的时候,获取

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

在我们的项目开发过程中,经常会对用户的信息进行分组,即通过组来显示用户的信息,同时通过一定的查询条件来显示查询后的相关用户信息,并且通过颜色选择器来设置列表信息的背景颜色. 其中借鉴xiaanming:http://blog.csdn.net/xiaanming/article/details/12684155 下面来看看项目运行后的效果图以及代码结构图: 下面通过代码来实现整个效果. 1.主界面布局activity_main.xml <span style="font-size:18px

Android的ExpandableListView的学习

最近在公司做项目,有一个小模块,需要用到ExpandableListView这个控件,所以在工作中边学习边工作.根据需求,在进入ExpandableLisView的时候默认展开第一组,需要用到这个属性,expandableListView.expandGroup(0); 在ExpandableListView中,当点击一个组展开时,其他展开的组是不自动关上的,这需要在监听事件中处理一下: @Override public void onGroupExpand(int groupPosition)

android 之 ExpandableListView列表中的列表

有时候,我们需要设计这样一个界面,外面有一个列表,当我们点击其中列表中的某个条目时,就会展开这个条目,出现一个新的列表.比如下图:(程序运行的效果图,在这里贴出来) 当我们点击第一项时,视图变为: ------------------------------------------------------------------------------------------------------------------------------ 为了实现这样的效果,需要定义三个布局,包括显示的

Android中ExpandableListView控件基本使用

本文採用一个Demo来展示Android中ExpandableListView控件的使用,如怎样在组/子ListView中绑定数据源.直接上代码例如以下: 程序结构图: layout文件夹下的 main.xml 文件源代码例如以下: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/a

Android在ExpandableListView控制的基本使用

在本文中,Demo为了展示Android在ExpandableListView用途管制.如该组/儿子ListView绑定数据源. 直接上代码例如以下: 程序结构图: layout文件夹下的 main.xml 文件源代码例如以下: <? xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/an

android中xmlns:tools属性详解

第一部分 安卓开发中,在写布局代码的时候,ide可以看到布局的预览效果. 但是有些效果则必须在运行之后才能看见,比如这种情况:TextView在xml中没有设置任何字符,而是在activity中设置了text.因此为了在ide中预览效果,你必须在xml中为TextView控件设置android:text属性 <TextView android:id="@+id/text_main" android:layout_width="match_parent" and

android中xml tools属性详解

第一部分 安卓开发中,在写布局代码的时候,ide可以看到布局的预览效果. 但是有些效果则必须在运行之后才能看见,比如这种情况:TextView在xml中没有设置任何字符,而是在activity中设置了text.因此为了在ide中预览效果,你必须在xml中为TextView控件设置android:text属性 1 2 3 4 5 6 7 <TextView   android:id="@+id/text_main"   android:layout_width="matc

22.Android之ExpandableListView树形列表学习

Android经常用到树形菜单,一般ExpandableListView可以满足这个需要,今天学习下. XML代码: 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:layout_width="match_parent