【问题标题】:Custom group expanding icon in ExpandableListViewExpandableListView 中的自定义组扩展图标
【发布时间】:2015-05-18 06:20:22
【问题描述】:

我正在尝试为 ExpandableListView 的组展开和折叠状态使用自定义图标。但这似乎不起作用。即使输出消息按顺序工作,图标也不会改变。

    explistView.setOnGroupClickListener(new OnGroupClickListener()
    {
        @Override
        public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id)
        {
            groupIndicator = (ImageView) findViewById(R.id.group_indicator);
            if (parent.isGroupExpanded(groupPosition))
            {
                System.out.println("1");
                parent.collapseGroup(groupPosition);
                System.out.println("2");
                groupIndicator.setImageResource(R.drawable.expand_icon_35x35);
                System.out.println("3");
                adapter.notifyDataSetChanged();
            } 
            else
            {
                System.out.println("4");
                parent.expandGroup(groupPosition);
                System.out.println("5");
                groupIndicator.setImageResource(R.drawable.collapse_icon_35x35);
                System.out.println("6");
                adapter.notifyDataSetChanged();
            }
            return true;
        }
    });

【问题讨论】:

  • 你设置了setGroupIndicator(null)吗?

标签: android expandablelistview


【解决方案1】:

你可以参考这个answer

您可以使用以下方法更改图标:-

<ExpandableListView android:id="@+id/list"
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent"
       android:layout_marginTop="10dp"
       android:groupIndicator="@drawable/settings_selector"
   />

设置选择器是:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
   <item android:drawable="@drawable/up_arrow" android:state_empty="true"/>
   <item android:drawable="@drawable/down_arrow" android:state_expanded="true"/>
</selector>

【讨论】:

  • 我已经用过这个了,效果很好,但是图标被拉长了。于是我改用了上面的方法。
  • @VeronikaGilbert 尝试将您的图标调整为 32*32 dp
  • @VeronikaGilbert 你能上传一张图片吗。这可能是图标切片的问题。它不应该是特定于代码的。
  • 我已经添加了图标自行扩展以填充空间的图像。
  • 你能给我建议我需要使用的图像尺寸吗?
【解决方案2】:

就我而言,android:state_empty="true" 不起作用。 所以,我把它改成了 android:state_expanded="false"

<ExpandableListView 
       android:id="@+id/expl"
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent"
       android:groupIndicator="@drawable/settings_selector"/>

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

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-05
    • 2011-04-19
    • 2011-02-13
    • 1970-01-01
    相关资源
    最近更新 更多