In realtà entrambi sono uguali. Nel primo XML si dice che sarebbe una visione di tipo android.support.design.widget.Snackbar$SnackbarLayout
(definito nella proprietà class
)
<view xmlns:android="http://schemas.android.com/apk/res/android"
class="android.support.design.widget.Snackbar$SnackbarLayout"
Nel secondo è direttamente dichiarando utilizzando la classe personalizzata.
secondo formato può essere utilizzato solo se la visualizzazione personalizzata non è definito come una classe interna
From Android Documentation
Ora abbiamo il nostro componente personalizzato, ma come possiamo usarlo? Nell'esempio NotePad, il componente personalizzato viene utilizzato direttamente dal layout dichiarativo, quindi dai un'occhiata a note_editor.xml nella cartella res/layout.
Il componente personalizzato viene creato come vista generica nell'XML e la classe viene specificata utilizzando il pacchetto completo. Nota anche che la classe interna che abbiamo definito è referenziata usando la notazione MyEditText di NoteEditor $ che è un modo standard per riferirsi a classi interne nel linguaggio di programmazione Java.
Se il componente di visualizzazione personalizzato non è definito come una classe interna, è possibile, in alternativa, dichiarare il componente Visualizza con il nome dell'elemento XML ed escludere l'attributo di classe. Ad esempio:
Si noti che la classe MyEditText è ora un file di classe separato. Quando la classe è annidata nella classe NoteEditor, questa tecnica non funzionerà.
Gli altri attributi e parametri nella definizione sono quelli passati al costruttore del componente personalizzato e quindi passati al costruttore EditText, in modo che siano gli stessi parametri che usereste per una vista EditText. Notare che è possibile aggiungere anche i propri parametri, e lo toccheremo di nuovo qui sotto.
E questo è tutto quello che c'è da fare. Certo, si tratta di un caso semplice, ma è questo il punto: la creazione di componenti personalizzati è tanto complicata quanto è necessario.
Un componente più sofisticato può sovrascrivere ancora di più su ... metodi e introdurre alcuni dei propri metodi di supporto, personalizzando sostanzialmente le sue proprietà e il suo comportamento. L'unico limite è la tua immaginazione e ciò di cui hai bisogno è il componente da fare.
Questo sarebbe sufficiente per voi per capire: http://developer.android.com/guide/topics/ui/custom-components.html#modifying –