2012-11-02 28 views
0

试图找出如果在一个ViewGroup中的任何视图是一个Horizo​​ntalScrollView,由于某种原因,这个代码不工作,以及内部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; 
} 

回答

2

你递归调用你的方法,但你不这样做这些结果...
任何尝试返回true,当你发现一个嵌套Horizo​​ntalScrollView,像这样:

else if (viewGroup.getChildAt(i) instanceof ViewGroup && 
     isAnyViewHorizontallyScrollable((ViewGroup)viewGroup.getChildAt(i))) 
    return true; 
} 
+0

不麻烦。考虑一下名称'containsHorizo​​ntalScrollView()',它有点更具描述性,听起来更好(至少对我来说)。 – Sam