0

试图弄清楚 ViewGroup 中的任何视图是否是 Horizo​​ntalScrollView,由于某种原因,这段代码不能很好地工作。如果有人可以帮助我了解我做错了什么,那么我将不胜感激。

我确定我的布局中有一个水平滚动视图,并且它是我传入的 ViewGroup 的子视图。

private boolean isAnyViewHorizontallyScrollable(ViewGroup viewGroup) {
    for (int i=0; i < viewGroup.getChildCount(); i++) {
        if (viewGroup.getChildAt(i) instanceof HorizontalScrollView) {
            Log.d(TAG, "Found a horizontal scroll view");
            return true;
        } else if (viewGroup.getChildAt(i) instanceof ViewGroup) {
            isAnyViewHorizontallyScrollable((ViewGroup)viewGroup.getChildAt(i));
        }
    }

    return false;
}
4

1 回答 1

2

你递归地调用你的方法,但你没有对这些结果做任何事情......
当你找到一个嵌套的 Horizo​​ntalScrollView 时尝试返回 true,如下所示:

else if (viewGroup.getChildAt(i) instanceof ViewGroup &&
         isAnyViewHorizontallyScrollable((ViewGroup)viewGroup.getChildAt(i)))
    return true;
}
于 2012-11-02T21:58:18.970 回答