Ho solo bisogno di qualcuno che mi dica se ho capito correttamente quando usare <include>
e quando <merge>
.Alcuni possono chiarire l'uso di <include> e <merge>
Quindi, faccio un layout dell'intestazione, che voglio includere in qualche altro schema XML:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Header text" />
</LinearLayout>
E io includerlo in qualche altro XML in questo modo (che è piuttosto semplice):
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<include android:id="@+id/header" layout="@layout/top"
android:layout_width="fill_parent" android:layout_height="wrap_content"
/>
</LinearLayout>
Questo funzionerà bene, nessun problema al riguardo. Ma per ottimizzare il codice, devo usare <merge>
nel layout che viene incluso. Così il top layout
non dovrebbe avere un tag <LinearLayout>
ma deve assomigliare a questo:
<merge xmlns:android="http://schemas.android.com/apk/res/android">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Header text" />
</merge>
Ho capito correttamente questo?
Ya sembra buono. Anche se, nella mia esperienza, non ho bisogno di unire. Non posso semplicemente posizionare la visualizzazione del testo nel suo file xml e includere quel file. Nessuna unione necessaria. – AedonEtLIRA
Sì, funzionerà, ma è davvero ** sicuro di usarlo in questo modo perché gli sviluppatori di Google non hanno mai suggerito tale pratica. Ho paura di cosa succederebbe se decidessero di cambiare qualcosa che riconosce il tag di fusione. – sandalone
@sandalone come tutto ciò che è necessario aggiornare l'xml ... al nuovo standard. Ci sono state tonnellate di metodi ammortizzati in Android fin dall'inizio, quindi questo non è davvero un problema più di qualcosa che si dovrebbe essere consapevoli di. – Jonny2Plates