lightbulb_outline Help shape the future of the Google Play Console, Android Studio, and Firebase. Start survey

Layout linear

LinearLayout é um grupo de exibições que alinha todos os filhos em uma única direção vertical ou horizontal. Você pode especificar a direção do layout com o atributo android:orientation.

Todos os filhos de um LinearLayout são empilhados um após o outro. Portanto, uma lista vertical terá apenas um filho por linha, independentemente de sua largura, e uma lista horizontal terá altura de apenas uma linha (a altura do filho mais alto, mais preenchimento). Um LinearLayout respeita margens entre filhos e a gravidade (alinhamento à direita, no centro ou à esquerda) de cada filho.

Ponderação do layout

O LinearLayout também permite atribuir uma ponderação a filhos individuais com o atributo android:layout_weight. Esse atributo designa um valor de "importância" a uma exibição em termos de quanto espaço ela deve ocupar na tela. Um valor de ponderação maior permite que a exibição se expanda para preencher todo o espaço restante na exibição pai. As exibições filhas podem especificar um valor de ponderação. Com isso, todo o espaço restante no grupo de exibições será designado aos filhos na proporção de sua ponderação declarada. A ponderação padrão é zero.

Por exemplo, para três campos de texto, dois com ponderação 1 e o terceiro sem ponderação, esse terceiro campo de texto sem ponderação não aumentará e ocupará apenas a área necessária para seu conteúdo. Os outros dois expandirão igualmente para preencher o espaço restante depois que os três campos forem medidos. Se a ponderação 2 (em vez de 0) for atribuída ao terceiro campo, ele será mais importante que os outros dois e, portanto, ficará com metade do espaço total restante e dois primeiros compartilharão o resto igualmente.

Exemplo

<?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:paddingLeft="16dp"
    android:paddingRight="16dp"
    android:orientation="vertical" >
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/to" />
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/subject" />
    <EditText
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:gravity="top"
        android:hint="@string/message" />
    <Button
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:text="@string/send" />
</LinearLayout>

Para obter detalhes sobre os atributos disponíveis para cada exibição filha de um LinearLayout, consulte LinearLayout.LayoutParams.