İlan Android öznitelikleri styleable
Hangi bileşenleri için özel stiller ilan edebiliriz declare-styleable
etiketi ile ilgili değerli belgeler var. attr
etiket format
öznitelik için geçerli değerler this list buldum. Bu güzel gittiği yere kadar da, bazı değerler nasıl kullanıldığını açıklamıyor. attr.xml (standart öznitelikleri için Android kaynak tarama), gibi şeyler yapabilirsin, bunu keşfettim
<!-- The most prominent text color. -->
<attr name="textColorPrimary" format="reference|color" />
format
öznitelik açıkça değerlerin bir kombinasyonu ayarlanabilir. Muhtemelen format
öznitelik çözümleyici gerçek tarzı bir değeri yorumlamak yardımcı olur. Sonra attr.xml bu keşfettim
<!-- Default text typeface. -->
<attr name="typeface">
<enum name="normal" value="0" />
<enum name="sans" value="1" />
<enum name="serif" value="2" />
<enum name="monospace" value="3" />
</attr>
<!-- Default text typeface style. -->
<attr name="textStyle">
<flag name="normal" value="0" />
<flag name="bold" value="1" />
<flag name="italic" value="2" />
</attr>
Bunların her ikisi de belirtti stil için izin verilen değerler beyan görünüyor.
İki sorum var:
enum
değerlerflag
değerler sağlayan bir sağlayan bir style özniteliği arasındaki fark nedir?- Herkes
declare-styleable
nasıl çalıştığını, daha iyi bir Dokümantasyon (ters Android kaynak kodunu Mühendisliği dışında) biliyor mu?
CEVAP
Bu soru var: Defining custom attrs ilebazıbilgi, ama çok değil.
Ve bu 23**. Bayraklar ve çeteleler hakkında iyi bilgilerim:
Özel XML Flags Özniteliği
Bayraklar özel öznitelik türleri vardır sadece bir çok iznine sahip oldukları değerler, yani o küçük alt bunun altında tanımlanır etiketi özniteliği. Belirtilen bayraklar ile bir “” özniteliğini ve “değer”adı öznitelik. Adları için gereklidir bu öznitelik türü içinde benzersiz ama değerleri olması gerekmez. Bu nedeni evrim sürecinde vardı Android “fill_parent” ve “” hem match_parent aynı davranış için haritalama. Onların değerleri aynıydı.
Adı, haritalar özniteliği değeri kullanılan içinde yer düzen XML ve gerektirmez ad alanı öneki. Bu nedenle, için “” “” merkezi olarak seçtim yukarıda tilingMode öznitelik değeri. Olabilir kolayca seçilen “” ya da gerilmiş “tekrar” ama başka bir şey yok. Değil hatta gerçek değerleri içinde bırakılabilir. ki izin verilmiş.
Değeri bir öznitelik olmalıdır tamsayı. Onaltılık seçimi ya standart rakamıyla temsil edilir senin için. Birkaç yer içinde var her ikisi de kullanıldığı Android kodu ve Android derleyici için mutlu. ya kabul edin.
Özel XML Çeteleler bağlıyor
Çeteleler bir yer hemen hemen aynı kullanılır bir hüküm ile bayrak olarak şekilde, birbirlerinin yerine kullanılabilir tamsayılar. Kaputun altında Çeteleler ve Tamsayılar aynı veri eşleştirilir yani, bir Tamsayı yazın. Ne zaman öznitelik tanımı görünen Tamsayılar, Çeteleler önlemek için hizmet vermektedir “sihirli sayı” olan her zaman kötüdür. Bu bir neden olabilir. “: layout_width” ya bir android boyut, tamsayı veya dize adlı “fill_parent.”
Bağlam içine koymak için, hadi bir özel oluşturmak varsayalım öznitelik adı “layout_scroll_height” kabul eden bir tamsayı ya da bir dize “scroll_to_top.” Bir ben eklemek istiyorum bunu yapmak için “tamsayı” biçim, nitelik ve izleyin numaralama ile:
<attr name="layout_scroll_height" format="integer"> <enum name="scroll_to_top" value="-1"/> </attr>
Çeteleler kullanırken bir şartım bu şekilde bir geliştirici olduğunu özel Görünümü kullanarak olabilir kasıtlı değeri "" -1 yeri düzeni parametreleri. Bu olur mantık özel durum tetik “scroll_to_top.” (Ya da böyle beklenmedik beklenen) davranış hızlı olabilir kütüphane “eski için ligden kod Numaralandırma değerleri olsaydı” kazık kötü seçilmiş.
Gördüğüm kadarıyla, bir öznitelik gerçekte ekleyebilirsiniz gerçek değerleri elde edebilirsiniz ne ile sınırlıdır. AttributeSet
sınıf başvuru daha fazla ipucu için here kontrol edin.
Elde edebilirsiniz:
- Boolean değerleri (
getAttributeBooleanValue
), - yüzer (
getAttributeFloatValue
), - in (
getAttributeIntValue
), - in (
getAttributeUnsignedIntValue
) - ve dizeleri (
getAttributeValue
)
Ne kadar uzun bir boy ilan Araç/Aksiyo...
Soru işareti (?) Android için XML özni...
Objective-C ilan için @özellik öznitel...
Bir özel ilan android UI öğesi XML kul...
java.lang.noclassdeffounderror: com.go...