A tag XML ‘include’

O uso de fragments no Android é entendido logo no inicio de seu estudo como a possibilidade de repetir telas dentro de telas ou mesmo fragmentar uma tela em subtelas para que seja possível reaproveitá-las em outras telas. Não se esquecendo que essas telas não são apenas arquivos XML chamados dentro de outros arquivos XML, mas estão ligadas cada uma à uma classe Fragment que funciona como se fosse uma Activity, apesar não ser filha em nenhum grau.

Em breve postarei algo melhor sobre os Fragments, mas expliquei isso para que possamos nos ambientar em uma possível situação que venha ocorrer, onde eu simplesmente desejo colocar uma layout dentro do outro e sabendo que esse layout tem apenas elementos estáticos, não alterados em tempo de execução, como por exemplo um aviso de copyright no rodapé. Seria necessário criar uma classe Fragment para ligar ao meu futuro layout filho e fazer com que esse Fragment seja usado por uma Activity que está relacionada ao futuro layout pai? É preciso toda essa estrutura para a solução desse simples problema? Sendo que quem entende Fragments sabe que a minha classe Fragment estaria praticamente vazia…

Estava lendo o livro “50 Android Hacks” e me deparei com uma solução, a tag <include>. Ela faz exatamente isso, simplesmente chama um arquivo xml para dentro de outro. Veja um exemplo abaixo:

layout_pai.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Layout Pai"
android:textAppearance="?android:attr/textAppearanceLarge" />

<include layout="@layout/layout_filho"/>

</LinearLayout>

layout_filho.xml

</pre>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Layout Filho"
android:textAppearance="?android:attr/textAppearanceLarge" />

</LinearLayout>

Teste isso e no resultado visual você terá o seguinte:

include

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s