Saya tahu itu mungkin untuk membuat elemen UI kustom (melalui View atau ekstensi elemen UI tertentu). Tetapi apakah mungkin untuk menentukan properti atau atribut baru ke elemen UI yang baru dibuat (maksud saya tidak diwariskan, tetapi baru untuk menentukan beberapa perilaku tertentu yang tidak dapat saya tangani dengan propertis atau atribut default)
misalnya elemen elemen kustom saya:
<com.tryout.myCustomElement
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Element..."
android:myCustomValue=<someValue>
/>
Jadi, apakah mungkin untuk menentukan MyCustomValue ?
Terima kasih
android
custom-controls
Waypoint
sumber
sumber
Jawaban:
Iya. Panduan singkat:
1. Buat atribut XML
Buat file XML baru di dalamnya
/res/values/attrs.xml
, dengan atribut dan tipenyaPada dasarnya Anda harus menyiapkan satu
<declare-styleable />
untuk tampilan Anda yang berisi semua atribut khusus Anda (di sini hanya satu). Saya tidak pernah menemukan daftar lengkap kemungkinan jenis, jadi Anda perlu melihat sumbernya, saya kira. Jenis yang saya tahu adalah referensi (ke sumber daya lain), warna, boolean, dimensi, float, integer, dan string . Mereka cukup jelas2. Gunakan atribut dalam tata letak Anda
Itu bekerja dengan cara yang sama seperti yang Anda lakukan di atas, dengan satu pengecualian. Atribut khusus Anda membutuhkan namespace XML-nya sendiri.
Cukup lurus ke depan.
3. Manfaatkan nilai-nilai yang Anda lewati
Ubah konstruktor tampilan kustom Anda untuk mengurai nilai.
distanceExample
adalah variabel anggota privat dalam contoh ini.TypedArray
punya banyak hal lain untuk mengurai jenis nilai lainnya.Dan itu dia. Gunakan nilai parsing Anda
View
untuk memodifikasinya, misalnya menggunakannyaonDraw()
untuk mengubah tampilan yang sesuai.sumber
http://schemas.android.com/apk/res-auto
saat mendeklarasikan namespace kustomString initialText = attrs.getAttributeValue("http://schemas.android.com/apk/res-auto", "initialText");
mana attr adalah AttributeSet yang diteruskan dalam konstruktor dan 'initialText' adalah nama atribut khusus AndaDalam folder res / values buat attr.xml. Di sana Anda dapat menentukan sikap Anda:
Ketika Anda kemudian ingin menggunakannya di file tata letak Anda, Anda harus menambahkan
dan kemudian Anda dapat menggunakan nilainya dengan
customname:myCustomValue=""
sumber
Ya, Anda bisa. Cukup gunakan
<resource>
tag.seperti ini:
tautan dari situs web resmi
sumber