Android类库项目中的自定义组件

时间:2018-01-17 14:45:13

标签: android xamarin xamarin.android

我们想创建一个Android Class Library来重用一些代码,主要是自定义视图。

我已成功创建并引用了Xamarin.Android项目中的视图。

我唯一遇到的问题是我无法使用declare-styleable。该视图看起来很好,但无法在custom attributes中使用XML layout

<resources>
  <declare-styleable name="MyCustomView">
    <attr name="srcLittle" format="reference" />
  </declare-styleable>
</resources>

这就是我使用它的方式:

<android.support.v7.widget.CardView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res/res-auto"
    [...] >

    [...]

        <Core.MyCustomView
            android:id="@+id/item_proposal_validation_trips_icon"
            android:layout_gravity="center"
            android:layout_height="48dp"
            android:layout_width="48dp"
            app:srcLittle="@drawable/ic_plane" />  <-- ERROR
    [...]   

</android.support.v7.widget.CardView>

XML错误:

  

&#34; http://schemas.android.com/apk/res/res-auto:srcLittle&#34;属性未声明

编译错误:

  

1:错误:找不到属性&#39; srcLittle&#39;在包裹&#39; res-auto&#39;

感谢。

1 个答案:

答案 0 :(得分:1)

您为布局中的app前缀定义的命名空间不正确。

xmlns:app="http://schemas.android.com/apk/res/res-auto"

应用程序定义属性的正确命名空间为http://schemas.android.com/apk/res-auto。你那里有一个额外的res/。它应该是:

xmlns:app="http://schemas.android.com/apk/res-auto"