如果在XML中将width定义为MATCH_PARENT,如何从AttributeSet获取视图宽度

时间:2016-11-08 15:30:08

标签: android android-layout

我有一个自定义视图,我在Activity的XML文件中使用它。视图的宽度和高度是MATCH_PARENT。现在我试图从AttributeSet中获取运行时的宽度和高度。

        int[] attrsArray = new int[]{android.R.attr.layout_width, android.R.attr.layout_height};
        TypedArray typedArray = context.obtainStyledAttributes(attrs, attrsArray);
        int width = typedArray.getDimensionPixelSize(0, ViewGroup.LayoutParams.MATCH_PARENT);
        int height = typedArray.getDimensionPixelSize(1, ViewGroup.LayoutParams.MATCH_PARENT);

但它崩溃了。 记录器输出为 -

 java.lang.UnsupportedOperationException: Can't convert to dimension: type=0x10
 System.err:     at android.content.res.TypedArray.getDimensionPixelSize(TypedArray.java:572)

我可以理解,因为不是MATCH_PARENT不是尺寸导致它崩溃的原因所以如何获得宽度和高度?

0 个答案:

没有答案