Entendendo o que é gerado pelo Android Studio
Introdução
Algo bem comum na vida do desenvolvedor é deixar que a sua IDE o ajude na hora do desenvolvimento. Tão comum que geralmente pedimos a ela para dar aquele chute inicial quando começamos um novo projeto.
Android Studio: o que é gerado no projeto
No desenvolvimento Android, quando iniciamos um projeto, ele já deixa configurado bastante coisa para gente: já cria nossa primeira Activity
(desde a classe ao seu layout) e além disso também a registra no manifest.
Legal, mas quando estamos iniciando um novo projeto, temos que escolher qual é o tipo de Activity
que queremos utilizar. Aí ele nos dá tela parecida com essa:
E geralmente não imaginamos logo de início qual será a melhor escolha de Activity
e preferimos escolher uma tela em branco. Essa tela em branco geralmente já vinha com um Hello World configurada nela, por isso escolhíamos BlankActivity
. Isso até a versão 1.5 do AndroidStudio.
Na última versão, quando estamos pedindo para ele gerar essa BlankActivity
, estão sendo gerados 2 arquivos de layout. Como assim? Se verificarmos, ele está gerando um arquivo chamado content_NOME_DA_ACTIVITY.xml e outro com nome activity_NOME_DA_ACTIVITY.xml. Vamos analisar um pouco esses arquivos.
Estávamos acostumados a criar uma Activity
e ela já vir com um único arquivo. Ao verificamos o arquivo activity_NOME_DA_ACTIVITY.xml que está sendo gerado vamos ver algo parecido com isto:
<?xml version="1.0" encoding="utf-8"?> <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true">
<android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/AppTheme.AppBarOverlay">
<android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" app:popupTheme="@style/AppTheme.PopupOverlay" />
</android.support.design.widget.AppBarLayout>
<include layout="@layout/content_NOME_DA_ACTIVITY" />
<android.support.design.widget.FloatingActionButton android:id="@+id/fab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|end" android:layout_margin="@dimen/fab_margin" android:src="@android:drawable/ic_dialog_email" />
</android.support.design.widget.CoordinatorLayout>
CoordinatorLayout, AppLayoutBar, Toolbar, FloatActionButton
...o que é tudo isso?
Há um tempo atrás o Google criou uma biblioteca especialmente para design para aplicações mobile, você pode conferir mais sobre ela aqui. Todas essas Views
já estão incluídas nesta biblioteca de design.
Legal, mas no meio desse layout há um include para outro arquivo de layout:
<include layout="@layout/content_NOME_DA_ACTIVITY" />
Este arquivo content já é aberto por padrão no momento que iniciamos um novo projeto,ele está lá para colocarmos todas as views que serão exibidas em nossa tela.
Esse novo padrão foi criado para deixar de forma mais organizada os arquivos xml.
Caso quisermos uma Activity
vazia, sem nenhuma View
, podemos iniciar nosso projeto utilizando **EmptyActivity**
, que substitui a forma que BlankActivity
fazia até a atualização.
Conhecemos dois tipos de Activity
e ainda existem muitas outras prontas que podemos utilizar!