在android中迭代StateListDrawable的子drawable
在我当前的项目中,我需要在StateListDrawable中迭代每个子drawable 在StateListDrawable.java的源代码中,我找到了一个方法: 公共可绘制getStateDrawable(int索引) 但是这个方法的注释是@hide,这意味着我不能使用它在android中迭代StateListDrawable的子drawable,android,Android,在我当前的项目中,我需要在StateListDrawable中迭代每个子drawable 在StateListDrawable.java的源代码中,我找到了一个方法: 公共可绘制getStateDrawable(int索引) 但是这个方法的注释是@hide,这意味着我不能使用它 那么,有没有其他方法可以实现这一点呢?现在这是一个相当老的问题,所以现在帮助您可能为时已晚,但为了其他人的利益,我可以使用以下代码来实现: final DrawableContainer parentDrawable =
那么,有没有其他方法可以实现这一点呢?现在这是一个相当老的问题,所以现在帮助您可能为时已晚,但为了其他人的利益,我可以使用以下代码来实现:
final DrawableContainer parentDrawable = (DrawableContainer) drawable;
final DrawableContainerState containerState = (DrawableContainerState) parentDrawable.getConstantState();
final Drawable[] children = containerState.getChildren();
for (int i = containerState.getChildCount(); i > 0; --i) {
doStuff(children[i - 1]);
}