[android]是它可能投 View 到 ViewGroup 吗?

标签: Android
发布时间: 2016/10/10 21:15:20
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.
  private void scaleAllViews(ViewGroup parentLayout) {

        int count = parentLayout.getChildCount();
        Log.d(TAG, "scaleAllViews: "+count);
        View v = null;
        for (int i = 0; i < count; i++) {
            try {
                v = parentLayout.getChildAt(i);

                if(((ViewGroup)v).getChildCount()>0){
                   scaleAllViews((ViewGroup)v);
                }else{
                    if (v != null) {
                        v.setScaleY(0.9f);
                    }
                }

            } catch (NullPointerException e) {
            }
        }
    }

我创建了一个递归函数对访问子项的 view group,但 parentLayout.getChildAt(i); 返回 View ,其中包含儿童过,所以我需要访问,但在铸造后遇到的错误java.lang.ClassCastException: android.support.v7.widget.AppCompatImageView cannot be cast to android.view.ViewGroup

解决方法 1:

您需要检查它是否是 ViewGroup 之前转换为 ViewGroup

if(v instanceof ViewGroup) {
    // now this is a safe cast
    ViewGroup vg = (ViewGroup) vg;
    // ... use this ViewGroup
} else {
    // It's some other type of View
}
官方微信
官方QQ群
31647020