获取ObtainStyledAttributes以在Android的xamarin中正常工作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取ObtainStyledAttributes以在Android的xamarin中正常工作相关的知识,希望对你有一定的参考价值。

我正在Xamarin.android中构建一个自定义控件,作为该控件初始化的一部分,我想要读取控件的指定高度。

我想使用ObtainStyledAttributes,因为它为我提供了一种方法,可以轻松地将字符串尺寸转换为尺寸。

所以我打电话给:

 context.ObtainStyledAttributes(attrs, new int [] { problemhere })

我遇到的问题是我不知道如何为layout_height指定常量(这是我想要提取的参数)。当我查看Xamarin文档时,它声明有一个Resource.Attribute.LayoutWidth const定义,但我不能在我的源代码中引用它。

我知道我也可以使用getAttributeValue()作为字符串,但它不会转换。

有任何想法吗?

答案

您正在寻找Android操作系统级资源:

int[] attrsArray = { 
    Android.Resource.Attribute.LayoutWidth,
    Android.Resource.Attribute.LayoutHeight 
};
var typedArray = context.ObtainStyledAttributes( attrsArray);
var layout_width = typedArray.GetDimensionPixelSize(0, ViewGroup.LayoutParams.WrapContent);
var layout_height = typedArray.GetDimensionPixelSize(1, ViewGroup.LayoutParams.WrapContent);

以上是关于获取ObtainStyledAttributes以在Android的xamarin中正常工作的主要内容,如果未能解决你的问题,请参考以下文章

android 自定义View

关于Android attrs 自定义属性的说明

TypedArray getColor 总是返回 defValue

JAVA中变量初始化之后, 为啥还要做判空处理?

监视/跟踪日志文件以获取更改和电子邮件以获取结果

以编程方式获取 Android 手机型号,如何在 android 中以编程方式获取设备名称和型号?