Android可扩展ListView图标(组指标)

时间:2011-09-15 19:06:44

标签: java android

我已经能够成功地将自己的图像换成可扩展的列表视图箭头。我现在有两个问题。

一个是我用下面的代码替换的图标每个都被拉伸到行的高度并且也太宽。第二,该代码仅改变组指标的初始状态。当特定行打开时,如何将其从一个图像更改为另一个图像?

Drawable plus = (Drawable) getResources().getDrawable(R.drawable.plus);
getExpandableListView().setGroupIndicator(plus);

2 个答案:

答案 0 :(得分:1)

Android的默认行为是拉伸groupIndicator图标。这是一个九点,所以如果你不想让它拉伸图像,你必须让你的九个可伸缩区域成为图标两侧的透明区域。

要在ExpandableListView打开时进行适当更改,您必须使用StateListDrawable。为以下状态添加适当的Drawable:

int[][] states = new int[][] {
        new int[] { android.R.attr.state_expanded },
        new int[] { },
};

你是这样做的:

StateListDrawable sld = new StateListDrawable();
sld.addState(states[0], YOUR_EXPANDED_DRAWABLE);
sld.addState(states[1], YOUR_UNEXPANDED_DRAWABLE);

并将其设置为groupIndicator。

希望有所帮助。

答案 1 :(得分:0)

你能做什么,是onCollapse和onExpand更改组指示器drawable。 Source