Android中可展开列表视图中的图像图标

6
我想在可扩展列表视图中添加一个图像图标。我看过教程,他们只在子元素中添加了图标。是否有其他方法可以在父元素中添加图像图标? 非常感谢您的帮助。 提前致谢。
4个回答

13
你也可以在XML中定义自己的groupIndicator:
首先定义你自己的drawable(我称之为list_view_group_indicator.xml并将其放置在drawable目录中)
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:state_expanded="true"
        android:drawable="@drawable/packagexgeneric" />
    <item
        android:drawable="@drawable/packagexgenericclose" />
</selector>
然后将它用作可展开列表视图的可绘制对象。
<ExpandableListView android:id="@+id/server_show_list"
    android:layout_width="fill_parent"android:layout_height="wrap_content"
    android:groupIndicator="@drawable/list_view_group_indicator" />

5
您可以尝试使用ExpandableListView的setGroupIndicator(Drawable)方法。该方法可设置组指示器。

你好, 这个方法将图标添加到所有的父级上,但如果我想分别为每个父级添加不同的图标,是否可行? - Sam97305421562
如果你想真正自定义你的组布局,为什么不尝试使用或者子类化SimpleExpandableListAdapter呢?设置扩展组布局的自定义资源,并在getGroupView(int, boolean, View, ViewGroup)中加载你需要的图片。祝好运,请在尝试后回来评论。 - Dimitar Dimitrov

1

好的

   public View getGroupView(int groupPosition, boolean isExpanded, View convertView,
            ViewGroup parent) {

    if(getChildrenCount(groupPosition)==0)
    {
          // how do i hide the group indicator ?

    }

那么,如何修改空组的分组指示器?


0
    indicator=(ImageView)convertView.findViewById(R.id.icon_img);
    if ( getChildrenCount( groupPosition ) == 0 ) {
        indicator.setVisibility( View.INVISIBLE );
    }
    else {
        indicator.setVisibility( View.VISIBLE );
        indicator.setImageResource( isExpanded ? 
       R.drawable.ic_arrow_up : R.drawable.ic_arrow_down );
    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接