Aslında ikisi de aynı. İlk xml buna doğrudan özel sınıf kullanarak ilan ediyor ikinci birinde (class
özelliğinde tanımlanan) tip android.support.design.widget.Snackbar$SnackbarLayout
bir görünüm
<view xmlns:android="http://schemas.android.com/apk/res/android"
class="android.support.design.widget.Snackbar$SnackbarLayout"
olacağını söylüyor.
İkinci biçim Özel görünüm iç sınıfa
From Android Documentation
Biz şimdi bizim özel bir bileşen vardır
olarak tanımlı değilse sadece kullanılabilir, ancak bunu nasıl kullanabiliriz? NotePad örneğinde, özel bileşen doğrudan bildirim düzeninden kullanılır, bu nedenle res/layout klasöründe note_editor.xml dosyasına bir göz atın.
<view
class="com.android.notepad.NoteEditor$MyEditText"
id="@+id/note"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@android:drawable/empty"
android:padding="10dip"
android:scrollbars="vertical"
android:fadingEdge="vertical" />
özel bileşen XML genel görünüm olarak oluşturulur ve sınıf tam paket kullanılarak belirtilir. Ayrıca tanımladığımız iç sınıfın Java programlama dilinde iç sınıflara başvurmak için standart bir yol olan NoteEditor $ MyEditText notasyonu kullanılarak referans alındığını unutmayın.
Özel Görünüm bileşeniniz bir iç sınıf olarak tanımlanmadıysa, alternatif olarak, Görünüm bileşenini XML öğesi adıyla bildirebilir ve sınıf özelliğini hariç tutabilirsiniz. MyEditText sınıfı artık ayrı bir sınıf dosyası olduğunu
<com.android.notepad.MyEditText
id="@+id/note"
... />
Uyarı: Örneğin. Sınıf NoteEditor sınıfında yuvalandığında, bu teknik çalışmayacaktır.
Tanımdaki diğer öznitelikler ve parametreler, özel bileşen yapıcısına iletilenler ve sonra EditText yapıcısına iletilir, böylece bir EditText görünümü için kullanacağınız aynı parametrelerdir. Kendi parametrelerinizi de eklemenin mümkün olduğunu ve bunun üzerine tekrar değineceğimizi unutmayın.
Ve hepsi bu kadar var. Kuşkusuz bu basit bir durumdur, ancak asıl nokta budur - özel bileşenler oluşturmak sadece ihtiyacınız olduğu kadar karmaşıktır.
Daha karmaşık bir bileşen, yöntemleri daha da geçersiz kılabilir ve özelliklerini ve davranışlarını önemli ölçüde özelleştirerek kendi yardımcı yöntemlerinden bazılarını tanıtabilir. Tek sınır hayal gücün ve yapman gereken şeye ihtiyacın var.
Bu, anlamanız için yeterli olur: http://developer.android.com/guide/topics/ui/custom-components.html#modifying –