Layout diferentes

34 respostas
F

Meus amigos, é possível fazer dois layouts iguais mas a orientação diferente?

Preciso fazer um com os campos um embaixo do outro, esse seria o layout na vertical.

O outro, queria um ao lado do outro, ex:

A B C
D E F

A, B, C… são os campos

Obrigado.

34 Respostas

Artur_Bernardo

Tu pode criar layouts diferentes para orientações diferentes.

Crie um arquivo XML na pasta layout, e um arquivo com o mesmo nome na pasta layou-land
Mudando a orientação do aparelho, muda o layout.

F

Como assim, não entendi direito.

Uma pasta layout padrão com o arquivo xml na vertical
Criar uma pasta com o nome layout-land e o xml dentro

Seria isso?

Uma outra duvida.

Como que faço os componentes ficarem lado a lado bem dispostos na tela?

Artur_Bernardo

Se tu criou o projeto pelo Eclipse, já deve ter uma pasta layout e uma pasta layout-land.
Isso dentro da pasta res.

Quanto a disposição dos elementos, leia sobre os layouts. Acho que o LinearLayout pode resolver teu problema.
O único detalhe é que tu precisa mudar se ele é na vertical ou na horizontal.

Artur_Bernardo

fbrigatt:
Como assim, não entendi direito.

Uma pasta layout padrão com o arquivo xml na vertical
Criar uma pasta com o nome layout-land e o xml dentro

Seria isso?

é isso.

F

Então, na vertical vai ser um abaixo do outro. Na horizontal um ao lado do outro. Tem como postar um exemplo de xml somente aqui com essa funcionalidade? Bem simples mesmo, pode ser?

Artur_Bernardo

Com um pouquinho de pesquisa tu encontra tudo isso :)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >

 AQUI VAI O RESTO DO CÓDIGO

</LinearLayout>
V

Só colocar um Layout dentro do outro, exemplo:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    android:layout_width="match_parent"  
    android:layout_height="match_parent"  
    android:orientation="vertical" >  
  
  <LinearLayout   
      android:layout_width="match_parent"  
      android:layout_height="match_parent"  
      android:orientation="horizontal" >  
  
        <TextView android:text="A"/>
        <TextView android:text="B"/>
        <TextView android:text="C"/>
  
  </LinearLayout>    

  <LinearLayout   
      android:layout_width="match_parent"  
      android:layout_height="match_parent"  
      android:orientation="horizontal" >  
  
        <TextView android:text="D"/>
        <TextView android:text="E"/>
        <TextView android:text="F"/>
  
  </LinearLayout>    

</LinearLayout>
F

Ok, obrigado pela ajuda. Tenho mais uma dúvida e última:

Estou criando um projeto agora e não sei qual vai ser o dispositivo e tamanho da tela, abri o eclipse e assim está bom?

Minimum Required SDK: API 8: Android 2.2 (Froyo)
Target SDK: API 17: Android 4.2 ou último
Compile With: API 17: Android 4.2 ou último
Theme: Aqui que estou com dúvida qual utilizar

Uma outra coisa, é só criar uma pasta como layout-land e exemplo colar esse código xml nela e na pasta layout fazer um abaixo do outro, vertical?

Artur_Bernardo

fbrigatt:
Ok, obrigado pela ajuda. Tenho mais uma dúvida e última:

Estou criando um projeto agora e não sei qual vai ser o dispositivo e tamanho da tela, abri o eclipse e assim está bom?

Minimum Required SDK: API 8: Android 2.2 (Froyo)
Target SDK: API 17: Android 4.2 ou último
Compile With: API 17: Android 4.2 ou último
Theme: Aqui que estou com dúvida qual utilizar

Uma outra coisa, é só criar uma pasta como layout-land e exemplo colar esse código xml nela e na pasta layout fazer um abaixo do outro, vertical?

Faz o layout e cruza os dedos, hehehehe
o ideal é ter um aparelho com Android para fazer os testes.
Pesquise como compilar o arquivo direto no seu aparelho… é bem mais rápido e os testes ficam bem melhores.

Se não tiver como testar de forma muito boa, tu pode
a) criar um layout simples, que irá diminuir as chances de problemas.
b)criar layouts diferentes para resoluções diferentes. Isso dá trabalho.
Para fazer isso, crie outras pastas, como layout-sw600dp e layout-sw600dp-land… neste caso, nestas pastas ficarão as resoluções de tablets.

F

Tenho um tablet com Android 2.3 e 8". Qual seria o melhor para ele?

Artur_Bernardo

deixa normal e testa, hehehehe

Alias, tu pode testar no emulador do Eclipse… tem uma opção ali na edição gráfica do XML, de mudar o modelo da tela.

F

É que eu queria evitar re-trabalho, entendeu? Já queria montar num esquema que ficasse legal ao testar.

F

Valeio Bezerra,

Não ta dando certo, precisava assim:

Nome:
EditText(nome)

Endereço Numero Bairro
EditText(endereco) EditText(Numero) EditText(bairro)

Cidade Estado CEP
EditText(Cidadeendereco) EditText(Estado) EditText(CEP)

Entendeu? Tem como ser assim? Não to conseguindo montar

V

A cara quebra a cabeça ai, é o mesmo exemplo mas você muda de TextView para EditText, isso é relativamente fácil, até demais.

F

Pior que to tentando, rs. É fácil sim, mas lado a lado não to conseguindo no layout-land. Ja criei a pasta e ta legal, falta criar esses campos ai.

Artur_Bernardo

Coloca um LinearLayout horizontal dentro de um vertical…

Cara… te aconselho a ler alguma coisa sobre… em 100 paginas de um livro ta sabendo tudo já.
Sem ler nada tu não vai a lugar algum.

F

Ok, mas eu estou tentando e não estou conseguindo. Posta um xml parecido que continuo. Por favor.

V

Eu postei exatamente como seria, só que usando textView, tente meu exemplo e ver como é que sai

F

Eu coloquei, mas ta dando “erro”. Não aparece nada.

Ta dando essas mensagens:

“” does not set the required layout_width attribute:
(1) Set to “wrap_content”
(2) Set to “match_parent”
"" does not set the required layout_height attribute:
(1) Set to “wrap_content”
(2) Set to “match_parent”
"" does not set the required layout_width attribute:
(1) Set to “wrap_content”
(2) Set to “match_parent”
"" does not set the required layout_height attribute:
(1) Set to “wrap_content”
(2) Set to “match_parent”
"" does not set the required layout_width attribute:
(1) Set to “wrap_content”
(2) Set to “match_parent”
"" does not set the required layout_height attribute:
(1) Set to “wrap_content”
(2) Set to “match_parent”
"" does not set the required layout_width attribute:
(1) Set to “wrap_content”
(2) Set to “match_parent”
"" does not set the required layout_height attribute:
(1) Set to “wrap_content”
(2) Set to “match_parent”
"" does not set the required layout_width attribute:
(1) Set to “wrap_content”
(2) Set to “match_parent”
"" does not set the required layout_height attribute:
(1) Set to “wrap_content”
(2) Set to “match_parent”
"" does not set the required layout_width attribute:
(1) Set to “wrap_content”
(2) Set to “match_parent”
"" does not set the required layout_height attribute:
(1) Set to “wrap_content”
(2) Set to "match_parent"
You must supply a layout_width attribute.
You must supply a layout_height attribute.

Artur_Bernardo

Coloca o código do teu xml…
E coloca escrito dentro das tags Code… tu acha elas abaixo do título ta tua mensagem

F

Segue:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    
    android:layout_width="match_parent"    
    android:layout_height="match_parent"    
    android:orientation="vertical" >    
    
  <LinearLayout     
      android:layout_width="match_parent"    
      android:layout_height="match_parent"    
      android:orientation="horizontal" >    
    
        <TextView android:text="A"/>  
        <TextView android:text="B"/>  
        <TextView android:text="C"/>  
    
  </LinearLayout>      
  
  <LinearLayout     
      android:layout_width="match_parent"    
      android:layout_height="match_parent"    
      android:orientation="horizontal" >    
    
        <TextView android:text="D"/>  
        <TextView android:text="E"/>  
        <TextView android:text="F"/>  
    
  </LinearLayout>      
  
</LinearLayout>

Mensagem que da:

"<TextView>" does not set the required layout_width attribute: 
(1) Set to "wrap_content" 
(2) Set to "match_parent" 
"<TextView>" does not set the required layout_height attribute: 
(1) Set to "wrap_content" 
(2) Set to "match_parent" 
"<TextView>" does not set the required layout_width attribute: 
(1) Set to "wrap_content" 
(2) Set to "match_parent" 
"<TextView>" does not set the required layout_height attribute: 
(1) Set to "wrap_content" 
(2) Set to "match_parent" 
"<TextView>" does not set the required layout_width attribute: 
(1) Set to "wrap_content" 
(2) Set to "match_parent" 
"<TextView>" does not set the required layout_height attribute: 
(1) Set to "wrap_content" 
(2) Set to "match_parent" 
"<TextView>" does not set the required layout_width attribute: 
(1) Set to "wrap_content" 
(2) Set to "match_parent" 
"<TextView>" does not set the required layout_height attribute: 
(1) Set to "wrap_content" 
(2) Set to "match_parent" 
"<TextView>" does not set the required layout_width attribute: 
(1) Set to "wrap_content" 
(2) Set to "match_parent" 
"<TextView>" does not set the required layout_height attribute: 
(1) Set to "wrap_content" 
(2) Set to "match_parent" 
"<TextView>" does not set the required layout_width attribute: 
(1) Set to "wrap_content" 
(2) Set to "match_parent" 
"<TextView>" does not set the required layout_height attribute: 
(1) Set to "wrap_content" 
(2) Set to "match_parent" 
You must supply a layout_width attribute. 
You must supply a layout_height attribute.
F

Fiz assim:

<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/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Razão Social / Nome:" />

    <EditText
        android:id="@+id/editText1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10" >

        <requestFocus />
    </EditText>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="152dp"
            android:text="CNPJ / CPF:" />

        <TextView
            android:id="@+id/textView3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Inscrição Estadual:" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <EditText
            android:id="@+id/editText2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:ems="10" />

        <EditText
            android:id="@+id/editText3"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10" />
    </LinearLayout>
    
    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Nome Fantasia:" />

    <EditText
        android:id="@+id/editText1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10" >
    </EditText>
    
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="152dp"
            android:text="Data Cadastro:" />

        <TextView
            android:id="@+id/textView3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="E-mail:" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <EditText
            android:id="@+id/editText2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:inputType="date"
            android:ems="10" />

        <EditText
            android:id="@+id/editText3"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10" 
            android:inputType="textEmailAddress"
         />
    </LinearLayout>
  
    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Nome Contato:" />

    <EditText
        android:id="@+id/editText1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10" >
    </EditText>
    
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="740dp"
            android:text="Endereço:" />

        <TextView
            android:id="@+id/textView3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Nº:" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <EditText
            android:id="@+id/editText2"
            android:layout_width="800dp"
            android:layout_height="wrap_content"
            android:ems="10" />

        <EditText
            android:id="@+id/editText3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:ems="10"/>
        
    </LinearLayout>
    
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="740dp"
            android:text="Bairro:" />

        <TextView
            android:id="@+id/textView3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="CEP:" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <EditText
            android:id="@+id/editText2"
            android:layout_width="800dp"
            android:layout_height="wrap_content"
            android:ems="10" />

        <EditText
            android:id="@+id/editText3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:ems="10"/>
        
    </LinearLayout>
    
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="405dp"
            android:text="Cidade:" />

        <TextView
            android:id="@+id/textView3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="165dp"
            android:text="Telefone:" />
        
        <TextView
            android:id="@+id/textView3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Celular:" />

    </LinearLayout>



    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <EditText
            android:id="@+id/editText2"
            android:layout_width="450dp"
            android:layout_height="wrap_content"
            android:ems="10" />

        <EditText
            android:id="@+id/editText3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:ems="10"/>
        
        <EditText
            android:id="@+id/editText3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:ems="10"/>
        
    </LinearLayout>
    
</LinearLayout>

Tem como melhorar isso ai?

Artur_Bernardo

Era só pesquisar um pouquinho!

F

Como que ficaria isso num RelativeLayout?

Artur_Bernardo

RelativeLayout? Acho que eles são desaconselháveis, dão muita dor de cabeça.

F

Como assim, dor de cabeça? Qual o motivo?

Artur_Bernardo

o RelativeLayout tem os elementos posicionados de forma mais burra, menos lógica… isso faz com que diferenças de tela embaralhem os elementos.
Pode usar ele, mas não é garantida a qualidade.

F

Então qual seria a melhor forma?

V

RelativeLayout ? Nãoooo. Ta certo o LinearLayout, para da espaçamento você usa , lembre-se de botar o tamanho(Altura e Largura)

F

Como que faz essa view ai e o tamanho(Altura e Largura).

Não seria o:

android:layout_width="match_parent"  
android:layout_height="wrap_content"

Porque o não uso do RelativeLayout? Quero entender isso. Pode me explicar?

F

Como que pode melhorar?

V

Procure entender o que é isso

match_parent
wrap_content

F

match_parent = fill_parent - largura, ocupa a tela toda
wrap_content - ocupa somente o espaço que vai ser utilizado.

F

Alguém?

Criado 1 de agosto de 2013
Ultima resposta 2 de ago. de 2013
Respostas 34
Participantes 3