Recurso de layout
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
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 atributo xmlns:android
com o namespace android
,
conforme mostrado no exemplo de sintaxe anterior.
- Elementos:
-
<ViewGroup>
- Um contêiner para outros elementos
View
. Há diferentes
tipos de objetos ViewGroup
, e cada um permite
especificar o layout dos elementos filhos de maneiras diferentes. Diferentes tipos de
objetos ViewGroup
incluem LinearLayout
,
RelativeLayout
e FrameLayout
.
Não presuma que qualquer derivação de ViewGroup
aceita visualizações aninhadas. Algumas visualizações em grupo
são implementações da classe AdapterView
, que determina
os filhos somente de um Adapter
.
Atributos:
android:id
- ID de recurso. Um nome de recurso exclusivo para o elemento que pode ser usado para
acessar uma referência para o
ViewGroup
do seu aplicativo. Para saber
mais, consulte a seção Valor de android:id.
android:layout_height
- Dimensão ou palavra-chave. Obrigatório. A altura do grupo, como um
valor de dimensão (ou
recurso de dimensão) ou uma palavra-chave
(
"match_parent"
ou "wrap_content"
). Para saber mais,
consulte a seção Valores de android:layout_height e
android:layout_width:.
android:layout_width
- Dimensão ou palavra-chave. Obrigatório. A largura do grupo, como um
valor de dimensão (ou
recurso de dimensão) ou uma palavra-chave
(
"match_parent"
ou "wrap_content"
). Para saber mais,
consulte a seção Valores de android:layout_height e
android:layout_width.
A classe de base
ViewGroup
oferece suporte a mais atributos, e muitos outros têm suporte de cada implementação do
ViewGroup
. Para conferir uma referência de todos os atributos disponíveis,
consulte a documentação de referência correspondente para a classe ViewGroup
,
por exemplo, Atributos LinearLayout
XML.
<View>
- Um componente de interface individual, geralmente conhecido como widget. Diferentes
tipos de objetos
View
incluem TextView
,
Button
e CheckBox
.
Atributos:
android:id
- ID de recurso. Um nome de recurso exclusivo para o elemento que pode ser usado para
acessar uma referência à
View
do seu aplicativo. Para saber
mais, consulte a seção Valor de android:id.
android:layout_height
- Dimensão ou palavra-chave. Obrigatório. A altura do elemento, como
um valor de dimensão (ou
recurso de dimensão) ou uma palavra-chave
(
"match_parent"
ou "wrap_content"
). Para saber mais,
consulte a seção Valores de android:layout_height e
android:layout_width.
android:layout_width
- Dimensão ou palavra-chave. Obrigatório. A largura do elemento, como
um valor de dimensão (ou
recurso de dimensão) ou uma palavra-chave
(
"match_parent"
ou "wrap_content"
). Para saber mais,
consulte a seção Valores de android:layout_height e
android:layout_width.
A classe de base
View
oferece suporte a mais atributos, e muitos outros têm suporte de cada implementação do
View
. Para saber mais, consulte Layouts. Para
conferir uma referência de todos os atributos disponíveis,
consulte a documentação de referência correspondente, por exemplo, Atributos TextView
XML.
<requestFocus>
- Qualquer elemento que represente um objeto
View
pode incluir esse elemento vazio,
o que dá foco inicial ao elemento pai na tela. Você pode ter apenas um desses
elementos por arquivo.
<include>
- Inclui um arquivo nesse layout.
Atributos:
layout
- Recurso de layout. Obrigatório. Referência a um recurso
de layout.
android:id
- ID de recurso. Modifica o ID dado à visualização raiz no layout incluído.
android:layout_height
- Dimensão ou palavra-chave. Substitui a altura atribuída à visualização raiz no
layout incluído. Só vai ser eficaz se
android:layout_width
também for declarado.
android:layout_width
- Dimensão ou palavra-chave. Substitui a altura atribuída à visualização raiz no
layout incluído. Só será eficaz se
android:layout_height
também for declarado.
Você pode incluir qualquer outro atributo de layout no <include>
que tenha
suporte do elemento raiz no layout incluído. Eles vão substituir os definidos no
elemento raiz.
Cuidado: se você quiser substituir os atributos de layout usando
a tag <include>
, substitua
android:layout_height
e android:layout_width
para que
outros atributos de layout sejam ativados.
Outra maneira de incluir um layout é usar ViewStub
: uma visualização
leve que não consome espaço de layout até ser explicitamente inflada. Quando você a infla, ela inclui um
arquivo de layout definido pelo atributo android:layout
. Para saber mais sobre o uso de ViewStub
, consulte Carregar
visualizações sob demanda.
<merge>
- Um elemento raiz alternativo que não é mostrado na hierarquia de layout. Usá-lo como
elemento raiz é útil quando você sabe que ele será colocado em um layout
que já tem a
View
mãe adequada para conter os filhos do
elemento <merge>
.
Isso é útil principalmente quando você planeja incluir esse layout
em outro arquivo usando <include>
e
ele não exige um contêiner ViewGroup
diferente. Para saber
mais sobre a mesclagem de layouts, consulte Reutilizar layouts com <include>.
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 ferramenta aapt
cria
um número inteiro do novo recurso na classe R.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 a TextView
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 valor android: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
e ViewGroup
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étodo onCreate()
:
-
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:
-
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2024-09-20 UTC.
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"Não contém as informações de que eu preciso"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"Muito complicado / etapas demais"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"Desatualizado"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"Problema na tradução"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"Problema com as amostras / o código"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"Outro"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"Fácil de entender"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"Meu problema foi resolvido"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"Outro"
}]
{"lastModified": "\u00daltima atualiza\u00e7\u00e3o 2024-09-20 UTC."}
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2024-09-20 UTC."]]