2017-12-21 30 views
1

Xamarin.Android에 사용자 지정 컨트롤을 만들고 해당 컨트롤의 초기화 중 컨트롤의 지정된 높이를 읽고 싶습니다.ObtainStyledAttributes가 Android 용 xamarin에서 제대로 작동하도록하는 방법

ObtainStyledAttributes을 사용하고 싶습니다. 문자열 치수를 쉽게 치수로 변환 할 수 있기 때문입니다.

그래서 내가 전화 :

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

난 데 문제는 내가 (이 내가 추출 찾고 매개 변수입니다) layout_height의 일정을 지정하는 방법을 모르는 것입니다. Xamarin 설명서를 살펴보면 Resource.Attribute.LayoutWidth const가 정의되어 있지만 내 소스 코드에서 참조 할 수 없다고 나와 있습니다.

나는 getAttributeValue()을 문자열로 가져올 수도 있지만 변환하지는 않는다는 것을 알고 있습니다.

아이디어가 있으십니까?

답변

1

당신은 Android OS 수준의 자원을 찾고 있습니다 :

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); 
+0

감사합니다! 내가 필요한 것. –