Um recurso de layout define a arquitetura da interface em uma Activity
ou um
componente de uma interface.
- Localização do arquivo:
res/layout/filename.xml
O nome do arquivo é usado como ID de recurso.- Tipo de dados do recurso compilado:
- Ponteiro de recurso para um recurso
View
(ou subclasse). - referência de recurso:
-
Em Java:
R.layout.filename
Em XML:@[package:]layout/filename
- Sintaxe:
-
<?xml version="1.0" encoding="utf-8"?> <ViewGroup xmlns:android="http://schemas.android.com/apk/res/android" android:id="@[+][package:]id/resource_name" android:layout_height=["dimension" | "match_parent" | "wrap_content"] android:layout_width=["dimension" | "match_parent" | "wrap_content"] [ViewGroup-specific attributes] > <View android:id="@[+][package:]id/resource_name" android:layout_height=["dimension" | "match_parent" | "wrap_content"] android:layout_width=["dimension" | "match_parent" | "wrap_content"] [View-specific attributes] > <requestFocus/> </View> <ViewGroup > <View /> </ViewGroup> <include layout="@layout/layout_resource"/> </ViewGroup>
Observação: o elemento raiz pode ser um elemento
ViewGroup
,View
ou<merge>
, mas é necessário que exista apenas um elemento raiz, e ele precisa conter o atributoxmlns:android
com o namespaceandroid
, conforme mostrado no exemplo de sintaxe anterior. - Elementos:
-
Valor de android:id
Para o valor do ID, use este formulário de sintaxe:
"@+id/name"
, conforme mostrado no exemplo a seguir. O sinal de adição,+
, indica que esse é um novo ID de recurso, e a ferramentaaapt
cria um número inteiro do novo recurso na classeR.java
, se ainda não houver um.<TextView android:id="@+id/nameTextbox"/>
O nome
nameTextbox
agora é um ID de recurso anexado a este elemento. Em seguida, você pode consultar aTextView
a que o ID está associado em Java:Kotlin
val textView: TextView? = findViewById(R.id.nameTextbox)
Java
TextView textView = findViewById(R.id.nameTextbox);
Esse código retorna o objeto
TextView
.No entanto, se você já tiver definido um recurso de ID e ele ainda não tiver sido usado, ative esse ID em um elemento
View
, excluindo o símbolo de adição no valorandroid:id
.Valores de android:layout_height e android:layout_width:
Os valores de altura e largura são expressos usando qualquer uma das unidades de dimensão com suporte no Android (px, dp, sp, pt, in, mm) ou com as seguintes palavras-chave:
Valor Descrição match_parent
Define a dimensão que corresponde à dimensão do elemento pai. Adicionado no nível 8 da API para descontinuar o uso de fill_parent
.wrap_content
Ajusta a dimensão ao tamanho necessário para adequar o conteúdo desse elemento. Elementos de visualização personalizados
Você pode criar e ativar elementos
View
eViewGroup
personalizados da mesma forma que um elemento de layout padrão. Você também pode especificar os atributos aceitos no elemento XML. Para saber mais, consulte Criar componentes de visualização personalizados. - exemplo:
- Arquivo XML salvo em
res/layout/main_activity.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/text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello, I am a TextView" /> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello, I am a Button" /> </LinearLayout>
Esse código de aplicativo carrega o layout para um
Activity
no métodoonCreate()
: -
Kotlin
public override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.main_activity) }
Java
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_activity); }
- Consulte também: