Um recurso de layout define a arquitetura da IU em uma atividade ou um componente de uma IU.
- localização do arquivo:
res/layout/filename.xml
O nome do arquivo vai ser usado como o ID do 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. - elementos:
-
Valor para
android:id
Para o valor do ID, use este formulário de sintaxe:
"@+id/name"
. O sinal de adição,+
, indica que esse é um novo ID de recurso, e a ferramentaaapt
vai criar um número inteiro do novo recurso na classeR.java
, se ainda não houver um. Por exemplo:<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, aplique-o a um elemento
View
excluindo o símbolo de adição no valorandroid:id
.Valor para
android:layout_height
eandroid:layout_width
:O valor de altura e largura pode ser expresso usando qualquer uma das unidades de dimensão com suporte do Android (px, dp, sp, pt, in, mm) ou com as palavras-chave abaixo:
Valor Descrição match_parent
Define a dimensão que corresponde com a dimensão do elemento pai. Adicionado no nível 8 da API para descontinuar o uso de fill_parent
.wrap_content
Define a dimensão somente para o tamanho necessário para ajustar o conteúdo desse elemento. Elementos de visualização personalizada
Você pode criar seus próprios elementos
View
eViewGroup
e os aplicar 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 o guia do desenvolvedor para componentes 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>
Este código de aplicativo vai carregar 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: