私はAndroidで開発して2か月足らずで、素晴らしいツールだと思います。今、いくつかのビューを拡張して新しい機能を追加するプロジェクトを開始しました(例:カスタムフォントを使用する)が、質問があります。WPF機能があります。 (。NETフレームワーク)これは、クラスを拡張せずに、このようなときに非常に便利です。
これは添付プロパティと呼ばれ、基本的には既存のクラスに新しいプロパティを追加する機能です。
通常のAndroidの例
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:my="http://schemas.android.com/apk/res/com.package.custom"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<com.package.CustomTextView
android:layout_width="fill_parent"
android:text="@string/hello"
android:layout_height="wrap_content"
android:id="@+id/TextView01"
android:textColor="@colors/text_color"
my:fontface="fonts/my-custom-font.ttf"
my:autosize="true"/>
<com.package.CustomButton
android:id="@+id/btn_continue"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@string/text_btn"
my:fontface="fonts/my-custom-btn-font.ttf" />
</LinearLayout>
そのような機能を定期的に追加するには、TextViewクラスを拡張する必要がありますが、AttachedPropertyを使用するとこれを実行できます
添付物件の例
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:my="http://schemas.android.com/apk/res/com.package.custom"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<!-- there is no need to extend the class -->
<TextView
android:layout_width="fill_parent"
android:text="@string/hello"
android:layout_height="wrap_content"
android:id="@+id/TextView01"
android:textColor="@colors/text_color"
my:fontface="fonts/my-custom-font.ttf"
my:autosize="true"/>
<Button
android:id="@+id/btn_continue"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@string/text_btn"
my:fontface="fonts/my-custom-btn-font.ttf" />
</LinearLayout>
これにより、TextViewだけでなく、他のクラスでも使用できるため、多くの作業を節約できます。