부모 레이아웃에서 자식 레이아웃으로 사용자 지정 특성을 전달하려고합니다.ObtainStyledAttributes를 사용하여 monodroid/xamarin 사용자 지정 특성이 비어 있습니다.
ObtainStyledAttributes()에서 반환 된 TypedArray에는 ID를 Resource.designer의 값에 매핑 할 수 있지만 만든 사용자 지정 속성에 대한 해당 사용자 지정 값이없는 것 같습니다.
Attr.xml :
<resources>
<declare-styleable name="HeaderView">
<attr name="bgcolor" format="color" />
<attr name="testing" format="string" />
</declare-styleable>
Main.xaml :
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:custom="http://schemas.android.com/apk/res">
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<views.HeaderView
android:id="@+id/hdrWatchList"
android:layout_width="fill_parent"
android:layout_height="20.0dp"
custom:bgcolor="@color/blue"
custom:testing="testing text buddy" />
보기 클래스 :
public HeaderView (Context context, IAttributeSet attrs) :
base (context, attrs)
{
int[] styleAttrs = Resource.Styleable.HeaderView;
TypedArray a = context.ObtainStyledAttributes(attrs, styleAttrs);
string sid = a.GetString(Resource.Styleable.HeaderView_testing);
int id = a.GetColor(Resource.Styleable.HeaderView_bgcolor, 555);
Log.Info("testing", "resource sid : " + sid); // RETURNS ''
Log.Info("testing", "resource id : " + id); // RETURNS DEF 555