Pergunta

Vi referências a poder especificar dois arquivos XML de layout separados para uma atividade, um para retrato e outro para a paisagem. Eu não estive em encontrar nenhuma informação sobre como fazer isso. Como especificar para cada atividade qual arquivo XML é o layout de retrato e qual é o layout da paisagem?

Também é possível especificar layouts diferentes para diferentes tamanhos de tela? Se sim, como isso é feito?

Foi útil?

Solução

Crie um layout-land diretório e coloque a versão paisagem do seu arquivo XML de layout nesse diretório.

Outras dicas

Você só precisa colocá -lo em pastas separadas com nomes diferentes, dependendo da orientação e resolução, o dispositivo selecionará automaticamente o correto para as configurações da tela

Mais informações aqui:

http://developer.android.com/guide/practices/screens_support.html

em "Qualificadores de diretório de recursos para o tamanho e densidade da tela"

Para os amantes do rato! Eu digo clique com o botão direito do mouse na pasta de recursos e Add new resource file, e dos qualificadores disponíveis, selecione o orientation :

enter image description here


Mas ainda assim você pode fazer isso manualmente, digamos, adicionando o subpasso "layout-terra" a

"Seu projeto-diretório app src main res"

Desde então, qualquer arquivo layout.xml sob este subpasso só funcionará para o modo de paisagem automaticamente.

Use "Layout-Port" para o modo retrato.

Apenas um lembrete:

Remover orientation a partir de android:configChanges atributo para a atividade em seu manifesto xml Arquivo se você definiu:

android:configChanges="orientation|screenLayout|screenSize"

Crie um novo diretório layout-land, então crie xml Arquivo com o mesmo nome em layout-land como era layout diretório e alinhe seu conteúdo para o modo de paisagem.

Observe que o ID do conteúdo em ambos xml é igual.

Ou use isto:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
            android:scrollbars="vertical" 
            android:layout_height="wrap_content" 
            android:layout_width="fill_parent">

  <LinearLayout android:orientation="vertical"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent">

     <!-- Add your UI elements inside the inner most linear layout -->

  </LinearLayout>
</ScrollView>

Eu acho que a maneira mais fácil nas versões mais recentes do Android é ir ao modo de design de um XML (não texto).

Em seguida, no menu, selecione Opção - Crie variação da paisagem. Isso criará uma paisagem XML sem nenhum aborrecimento em alguns segundos. A versão mais recente do Android Studio permite criar uma vista da paisagem imediatamente.

enter image description here

Espero que isso funcione pra você.

A última linha abaixo é um exemplo para aplicar dois quantificadores: paisagem e menor larguraTela (600dp). Atualize 600dp com os que você precisa.

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

O exposto acima se aplica a dimenses também

res/values/dimens.xml                # For handsets
res/values-land/dimens.xml           # For handsets in landscape
res/values-sw600dp/dimens.xml        # For 7” tablets
res/values-sw600dp-land/dimens.xml   # For 7” tablets in landscape

Uma métrica de dispositivo útil: https://material.io/tools/devices/

  1. Clique com o botão direito do mouse em pasta res,
  2. Novo -> Arquivo de Recursos Android
  3. Nos qualificadores disponíveis, selecione orientação,
  4. Adicionar ao qualificador escolhido
  5. Na orientação da tela, selecione Paisagem
  6. pressione OK

Usando o Android Studio 3.4.1, não cria mais layout-land pasta. Ele criará uma pasta e montará dois arquivos de layout.

enter image description here

Maneira mais rápida para o Android Studio 3.xx

1. Vá para a guia Design do layout da atividade

2. Na parte superior, você deve pressionar a orientação para o botão de visualização, há uma opção para criar um layout da paisagem (imagem de verificação), uma nova pasta será criada como seu arquivo de layout XML para essa orientação específica

enter image description here

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top