Centralizar uma ListView

12 respostas
A

Pessoal estou tentando centralizar o conteúdo da ListView mas o alinhamento só fica a esquerda, alguém tem uma boa dica?

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <TextView
        android:id="@+id/botafogoPb"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:background="#000000"
        android:gravity="center"
        android:text="Coluna do Otto"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textColor="#DC143C"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/grupoA4"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/botafogoPb"
        android:background="#DCDCDC"
        android:gravity="center"
        android:text="O mais Belo e Glorioso"
        android:textColor="#DC143C"
        android:textStyle="bold" />

    <ListView
        android:id="@+id/listaBlog"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_below="@+id/grupoA4"
        android:layout_weight="1"
        android:footerDividersEnabled="false"
        android:headerDividersEnabled="true" >
    </ListView>

</RelativeLayout>

12 Respostas

A

Normalmente, para a customização de listas, é necessária a utilização de uma classe ADAPTER.
Essa classe contem um método getView, que recebe posição por posição da lista. Lá tu pode criar cada “linha” da lista de forma customizada, até inflando outro layout xml a cada linha.

V

Não use RelativeLayout, use Linear e coloca o gravity como center

A

De fato, relativeLayout deve ser evitado, sempre!

Mas acho que ele quer centralizar o conteúdo de cada linha… gravity não vai centralizar a lista toda?

A

De fato, relativeLayout deve ser evitado, sempre!

Mas acho que ele quer centralizar o conteúdo de cada linha… gravity não vai centralizar a lista toda?

Eu quero centralizar a lista toda e realmente já uso em outra tela mas também não ta centralizando.

A

O problema para o LinearLayout é que eu não consigo colocar os componentes TextView um do lado do outro.

=(

A
anderson.bonavides:
Valeio Bezerra:
Não use RelativeLayout, use Linear e coloca o gravity como center

O problema para o LinearLayout é que eu não consigo colocar os componentes TextView um do lado do outro.

=(

Só vou te ajudar nessa porque quero baixar seu app, hehehehe
<LinearLayout
android:orientação: Vertical>
 
<TextView na vertical>
<outro textView na vertical>

//Agora eu quero na horizontal, como faz?
<LinearLayout
android:orientação: HORIZONTAL>
<TextView que eu quero um do lado do outro>
<TextView que ficou do lado>
</LinearLayout>

<algum outro elemento que segue na vertical>

</LinearLayout>
A

Se você quer centralizar todo o componente na tela, isso deve resolver, é só usar ai as propriedades certas para a TAG.
Mas se eu entendi certo, e o que tu quer é centralizar o CONTEUDO de cada linha da lista, ai acho que só com a classe adapter.

A
Artur Bernardo:
anderson.bonavides:
Valeio Bezerra:
Não use RelativeLayout, use Linear e coloca o gravity como center

O problema para o LinearLayout é que eu não consigo colocar os componentes TextView um do lado do outro.

=(

Só vou te ajudar nessa porque quero baixar seu app, hehehehe
<LinearLayout
android:orientação: Vertical>
 
<TextView na vertical>
<outro textView na vertical>

//Agora eu quero na horizontal, como faz?
<LinearLayout
android:orientação: HORIZONTAL>
<TextView que eu quero um do lado do outro>
<TextView que ficou do lado>
</LinearLayout>

<algum outro elemento que segue na vertical>

</LinearLayout>

Já tenho uma versão beta que disponibilizo pela google play então se quiser que eu te envie a apk me manda um email q eu te retorno: [email removido].

Lembrando que é uma app exclusiva do botafogo da Paraíba, e depois q eu terminar toda a app é que vou fazer o web-service para ela consumir automaticamente.

A

O XML ficou assim, eu consigo centralizar todo o resto menos a lista da artilharia:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="top"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textoArtilharia"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="#000000"
        android:gravity="center"
        android:text="Artilharia"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textColor="#DC143C"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/artilheiroDoBelo"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="#DCDCDC"
        android:gravity="center"
        android:text="Gols Pró do Botafogo-PB"
        android:textColor="#DC143C"
        android:textStyle="bold" />

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/artilheiro"
            android:layout_width="285dp"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_below="@+id/artilheiroDoBelo"
            android:text="Artilheiro"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/gols"
            android:layout_width="30dp"
            android:layout_height="wrap_content"
            android:layout_alignBaseline="@+id/artilheiro"
            android:layout_alignBottom="@+id/artilheiro"
            android:layout_toRightOf="@+id/artilheiro"
            android:gravity="center"
            android:text="Gols"
            android:textStyle="bold" />
    </LinearLayout>

    <ListView
        android:id="@+id/android:list"
        android:layout_width="fill_parent"
        android:layout_height="match_parent"
        android:layout_gravity="center" />

</LinearLayout>

V

Você tem dois xml, um que contem o ListView e outro que contem os campos do ListView, no caso a “linha” certo ?
No xml que contém os campos é que você coloca no seu Text o gravity para center. Caso não consiga poste os dois xml :]

V

Na verdade as configurações do TextView da "linha" do ListView tem que ser igual ao do cabeçalho.

<LinearLayout  
        android:layout_width="fill_parent"  
        android:layout_height="wrap_content"  
        android:gravity="center"  
        android:orientation="horizontal" >  
  
        <TextView  
            android:id="@+id/artilheiro"  
            android:layout_width="285dp"  
            android:layout_height="wrap_content"  
            android:layout_alignParentLeft="true"  
            android:layout_below="@+id/artilheiroDoBelo"  
            android:text="Artilheiro"  
            android:textStyle="bold" />  
  
        <TextView  
            android:id="@+id/gols"  
            android:layout_width="30dp"  
            android:layout_height="wrap_content"  
            android:layout_alignBaseline="@+id/artilheiro"  
            android:layout_alignBottom="@+id/artilheiro"  
            android:layout_toRightOf="@+id/artilheiro"  
            android:gravity="center"  
            android:text="Gols"  
            android:textStyle="bold" />  
    </LinearLayout>
A
Valeio Bezerra:
Na verdade as configurações do TextView da "linha" do ListView tem que ser igual ao do cabeçalho.
<LinearLayout  
        android:layout_width="fill_parent"  
        android:layout_height="wrap_content"  
        android:gravity="center"  
        android:orientation="horizontal" >  
  
        <TextView  
            android:id="@+id/artilheiro"  
            android:layout_width="285dp"  
            android:layout_height="wrap_content"  
            android:layout_alignParentLeft="true"  
            android:layout_below="@+id/artilheiroDoBelo"  
            android:text="Artilheiro"  
            android:textStyle="bold" />  
  
        <TextView  
            android:id="@+id/gols"  
            android:layout_width="30dp"  
            android:layout_height="wrap_content"  
            android:layout_alignBaseline="@+id/artilheiro"  
            android:layout_alignBottom="@+id/artilheiro"  
            android:layout_toRightOf="@+id/artilheiro"  
            android:gravity="center"  
            android:text="Gols"  
            android:textStyle="bold" />  
    </LinearLayout>

Não vi nada diferente do que está hoje no cenário atual.

Criado 18 de agosto de 2013
Ultima resposta 21 de ago. de 2013
Respostas 12
Participantes 3