Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在android中迭代StateListDrawable的子drawable_Android - Fatal编程技术网

在android中迭代StateListDrawable的子drawable

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

在我当前的项目中,我需要在StateListDrawable中迭代每个子drawable

在StateListDrawable.java的源代码中,我找到了一个方法:

公共可绘制getStateDrawable(int索引)

但是这个方法的注释是@hide,这意味着我不能使用它


那么,有没有其他方法可以实现这一点呢?

现在这是一个相当老的问题,所以现在帮助您可能为时已晚,但为了其他人的利益,我可以使用以下代码来实现:

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]);
}