Como posso ter um layout para paisagem e outro para retrato? Quero assumir uma largura extra e economizar espaço vertical quando o usuário gira o telefone de lado.
Como posso ter um layout para paisagem e outro para retrato? Quero assumir uma largura extra e economizar espaço vertical quando o usuário gira o telefone de lado.
Respostas:
Por padrão, os layouts /res/layout
são aplicados a retrato e paisagem.
Se você tem por exemplo
/res/layout/main.xml
você pode adicionar uma nova pasta /res/layout-land
, copiá main.xml
-la e fazer os ajustes necessários.
Consulte também http://www.androidpeople.com/android-portrait-amp-landscape-differeent-layouts e http://www.devx.com/wireless/Article/40792/1954 para mais algumas opções.
portrait
Na versão atual do Android Studio (v1.0.2), você pode simplesmente adicionar um layout de paisagem clicando no botão no editor visual mostrado na captura de tela abaixo. Selecione "Criar variação de paisagem"
layout-land
pasta. Alguma idéia de como chamar um layout a partir daí? Não pode usar R.layout.layout_name
. Estou tentando configurar meus próprios layouts manualmente após a alteração na configuração, obrigado.
Os layouts em / res / layout são aplicados a retrato e paisagem, a menos que você especifique o contrário. Vamos supor que temos /res/layout/home.xml para nossa página inicial e queremos que ela tenha uma aparência diferente nos dois tipos de layout.
Maneira mais rápida para o Android Studio 3.xx e Android Studio 4.xx
1. Vá para a guia Design do layout da atividade
2.No topo, você deve pressionar o botão de orientação para visualização , há uma opção para criar um layout de paisagem (verifique a imagem), uma nova pasta será criada como seu arquivo de layout xml para essa orientação específica
Você pode agrupar seu layout específico na estrutura de pastas correta da seguinte maneira.
layout-land-target_version
ie
layout-land-19 // destino KitKat
Da mesma forma, você pode criar seus layouts.
Espero que isso ajude você
-19
sufixo? Isso é útil de alguma forma?
Vou tentar explicar em breve.
Primeiro, você pode perceber que agora deve usar o ConstraintLayout conforme solicitado pelo google (consulte a biblioteca androix).
No seu projeto do android studio, você pode fornecer layouts específicos para a tela criando res / layout / diretórios adicionais. Um para cada configuração de tela que requer um layout diferente.
Isso significa que você deve usar o qualificador de diretório nos dois casos:
Como resultado, aqui está um exemplo:
res/layout/main_activity.xml # For handsets
res/layout-land/main_activity.xml # For handsets in landscape
res/layout-sw600dp/main_activity.xml # For 7” tablets
res/layout-sw600dp-land/main_activity.xml # For 7” tablets in landscape
Você também pode usar o qualificador com arquivos de recursos usando dimens.xml.
res/values/dimens.xml # For handsets
res/values-land/dimens.xml # For handsets in landscape
res/values-sw600dp/dimens.xml # For 7” tablets
res / valores / dimens.xml
<resources>
<dimen name="grid_view_item_height">70dp</dimen>
</resources>
res / valores-terra / dimens.xml
<resources>
<dimen name="grid_view_item_height">150dp</dimen>
</resources>
your_item_grid_or_list_layout.xml
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/constraintlayout"
android:layout_width="match_parent"
android:layout_height="wrap_content
<ImageView
android:id="@+id/image"
android:layout_width="0dp"
android:layout_height="@dimen/grid_view_item_height"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:background="@drawable/border"
android:src="@drawable/ic_menu_slideshow">
</androidx.constraintlayout.widget.ConstraintLayout>
Fonte: https://developer.android.com/training/multiscreen/screensizes