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 に答える