LinearLayout
é um grupo de visualizações que alinha todos os filhos em uma única direção, verticalmente ou
na horizontal. É possível especificar a direção do layout com o
android:orientation
.
.
Figura 1. Uma LinearLayout com três horizontalmente
crianças orientadas.
Todos os filhos de uma LinearLayout são empilhados um após o outro,
então uma lista vertical tem apenas um filho por linha, não importa qual seja a largura deles. Um
lista horizontal tem apenas uma linha de altura, e é a altura do filho mais alto,
mais padding. Um LinearLayout respeita as margens entre
filhos e a gravidade: à direita, no centro ou à esquerda
alinhamento de cada filho.
Peso do layout
LinearLayout também permite atribuir uma ponderação a
crianças individuais com
android:layout_weight
. Esse atributo atribui uma "importância" a uma visualização em termos de
quanto espaço ele ocupa na tela. Um valor de ponderação maior permite a expansão
para preencher o espaço restante na visualização principal. As visualizações filhas podem especificar uma ponderação
e qualquer espaço restante na visualização em grupo é atribuído aos filhos.
proporcionalmente, com base no peso declarado. O peso padrão é zero.
Distribuição igual
Criar um layout linear em que cada filho usa a mesma quantidade de espaço
na tela, defina
android:layout_height
de cada visualização para "0dp" para um layout vertical, ou a
android:layout_width
de cada visualização para "0dp" para um layout horizontal. Em seguida, defina
android:layout_weight de cada visualização para "1".
Distribuição desigual
Também é possível criar layouts lineares em que os elementos filhos usam diferentes
de espaço na tela. Confira estes exemplos:
Suponha que você tenha três campos de texto: dois com peso 1 e um
em terceiro lugar, com o valor de peso padrão de zero. O terceiro campo de texto, com o
peso 0, ocupa apenas a área exigida pelo conteúdo. O outro
dois campos de texto, com o valor de ponderação 1, se expandem igualmente para preencher
que resta depois que o conteúdo dos três campos é medido.
Se, em vez disso, você tiver três campos de texto, em que dois tenham um valor de ponderação de 1,
e a terceira tem peso 2, então o espaço que resta após o
o conteúdo de todos os três campos é alocado da seguinte forma: metade para
o campo com o valor de peso 2, e meio dividido igualmente entre as
com o valor de peso 1.
A figura a seguir e o snippet de código mostram como os pesos de layout podem funcionar em uma
"enviar mensagem" atividades. Cada campo Para, linha Assunto e
botão Enviar ocupa somente a altura necessária. A área da mensagem
ocupa o restante da altura da atividade.
Figura 2. Três campos de texto e um botão em um ambiente
LinearLayout:
Para obter detalhes sobre os atributos disponíveis para cada exibição filha de um
LinearLayout, consulte
LinearLayout.LayoutParams.
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 2025-07-27 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 2025-07-27 UTC."],[],[],null,["# Create a linear layout\n\nTry the Compose way \nJetpack Compose is the recommended UI toolkit for Android. Learn how to work with layouts in Compose. \n[Column or Row →](/jetpack/compose/layouts/basics) \n\n[LinearLayout](/reference/android/widget/LinearLayout)\nis a view group that aligns all children in a single direction, vertically or\nhorizontally. You can specify the layout direction with the\n[`android:orientation`](/reference/android/widget/LinearLayout#attr_android:orientation)\nattribute.\n| **Note:** For better performance and tooling support, [build your layout with\n| ConstraintLayout](/training/constraint-layout). Learn more about advantages of using `ConstraintLayout` by reading [Understanding\n| the performance benefits of ConstraintLayout](https://android-developers.googleblog.com/2017/08/understanding-performance-benefits-of.html).\n**Figure 1.** A `LinearLayout` with three horizontally oriented children.\n\nAll children of a `LinearLayout` are stacked one after the other,\nso a vertical list only has one child per row, no matter how wide they are. A\nhorizontal list is only one row high, and it's the height of the tallest child,\nplus padding. A `LinearLayout` respects *margins* between\nchildren, and the *gravity*---right, center, or left\nalignment---of each child.\n\nLayout weight\n-------------\n\n`LinearLayout` also supports assigning a *weight* to\nindividual children with the\n[`android:layout_weight`](/reference/android/widget/LinearLayout.LayoutParams#attr_android:layout_weight)\nattribute. This attribute assigns an \"importance\" value to a view in terms of\nhow much space it occupies on the screen. A larger weight value lets it expand\nto fill the remaining space in the parent view. Child views can specify a weight\nvalue, and any remaining space in the view group is assigned to children\nproportionately, based on their declared weight. The default weight is zero.\n\n### Equal distribution\n\nTo create a linear layout in which each child uses the same amount of space\non the screen, set the\n[`android:layout_height`](/reference/android/view/ViewGroup.LayoutParams#attr_android:layout_height)\nof each view to `\"0dp\"` for a vertical layout, or the\n[`android:layout_width`](/reference/android/view/ViewGroup.LayoutParams#attr_android:layout_width)\nof each view to `\"0dp\"` for a horizontal layout. Then set the\n`android:layout_weight` of each view to `\"1\"`.\n\n### Unequal distribution\n\nYou can also create linear layouts where the child elements use different\namounts of space on the screen. Consider the following examples:\n\n- Suppose you have three text fields: two with a weight value of 1, and a third with the default weight value of 0. The third text field, with the weight value of 0, occupies only the area required by its content. The other two text fields, with the weight value of 1, expand equally to fill the space that remains after the contents of all three fields are measured.\n- If instead you have three text fields where two have a weight value of 1 and the third has a weight of 2, then the space that remains after the contents of all three fields are measured is allocated as follows: half to the field with the weight value of 2, and half divided equally between the fields with the weight value of 1.\n\nThe following figure and code snippet show how layout weights might work in a\n\"send message\" activity. The **To** field, **Subject** line, and\n**Send** button each take up only the height they need. The message area\ntakes up the rest of the activity's height.\n**Figure 2.** Three text fields and a button in a vertically oriented `LinearLayout`. \n\n```xml\n\u003c?xml version=\"1.0\" encoding=\"utf-8\"?\u003e\n\u003cLinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n android:layout_width=\"match_parent\"\n android:layout_height=\"match_parent\"\n android:paddingLeft=\"16dp\"\n android:paddingRight=\"16dp\"\n android:orientation=\"vertical\" \u003e\n \u003cEditText\n android:layout_width=\"match_parent\"\n android:layout_height=\"wrap_content\"\n android:hint=\"@string/to\" /\u003e\n \u003cEditText\n android:layout_width=\"match_parent\"\n android:layout_height=\"wrap_content\"\n android:hint=\"@string/subject\" /\u003e\n \u003cEditText\n android:layout_width=\"match_parent\"\n android:layout_height=\"0dp\"\n android:layout_weight=\"1\"\n android:gravity=\"top\"\n android:hint=\"@string/message\" /\u003e\n \u003cButton\n android:layout_width=\"100dp\"\n android:layout_height=\"wrap_content\"\n android:layout_gravity=\"end\"\n android:text=\"@string/send\" /\u003e\n\u003c/LinearLayout\u003e\n```\n\nFor details about the attributes available to each child view of a\n`LinearLayout`, see\n[LinearLayout.LayoutParams](/reference/android/widget/LinearLayout.LayoutParams)."]]