当没有孩子时,隐藏可绘制的可扩展列表

时间:2011-05-10 16:54:33

标签: android expandablelistview

发现了一些类似的问题但没有答案可行。现在我这样做:

private ExpandableListView elv;
elv.setGroupIndicator(getResources().getDrawable(R.drawable.expandable_list_icon_selector));

expandable_list_icon_selector.xml:

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

不幸的是,这隐藏了所有群组的指标,即使它们不是空的。看来当一个组没有扩展时,android认为它是空的。有小费吗?感谢。

5 个答案:

答案 0 :(得分:1)

我做了类似于您的任务的事情 - 在仅部分组的组名旁边显示自定义组指示符。我是通过首先使用方法setGroupIndicator(null)隐藏组指示符来完成的。然后我实现了BaseExpandableListAdapter的子类,并在我展示的getGroupView()方法中,或者根据我的逻辑隐藏了我自己的指标图像。如果仍然是最新的,您可以使用这种方法。我希望我能帮助你。

答案 1 :(得分:1)

这里是没有孩子时可扩展列表的Hide drawable工作示例的链接。

希望这会对你有帮助......

http://mylifewithandroid.blogspot.in/2011/06/hiding-group-indicator-for-empty-groups.html

...谢谢

答案 2 :(得分:0)

编辑:此方法无法按设计工作(source)。

您是否尝试过添加非空状态?

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

答案 3 :(得分:-1)

我遇到了类似的问题,我解决了这个问题:

if(explistView != null){
     explistView.setIndicatorBounds(0, 0);
}

答案 4 :(得分:-1)

*

in getGroupView() method of adapter  use 

if ( getChildrenCount( groupPosition ) == 0 ) {
       indicator.setVisibility( View.INVISIBLE );
    } 
else {`enter code here`
       indicator.setVisibility( View.VISIBLE );
       indicator.setImageResource( isExpanded ? R.drawable.group_expanded : R.drawable.group_closed );
    }

*