Autore Topic: TableLayout fatto bene...  (Letto 5464 volte)

Offline ScarfaceIII

  • Utente junior
  • **
  • Post: 112
  • Respect: +13
    • raferalston12
    • Mostra profilo
  • Dispositivo Android:
    Nexus One
  • Sistema operativo:
    GNU/Linux, Ubuntu 10.04 / Windows 7
TableLayout fatto bene...
« il: 24 Maggio 2010, 17:43:16 CEST »
0
Buongiorno a tutti! visto che siete stati così fantamitici (Ricky soprattutto) in quest'altro post, ho bisogno di nuovo del vostro aiuto per migliorare la resa di un TableLayout molto spento...Ho questa interfaccia (circa, ho aggiunto i paddding in realtà):

derivata da questo codice (l'immagine viene fatta sparire se è abilitata la modalità log, attraverso una schermata precedente):
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                                android:layout_width="fill_parent"
                                android:layout_height="fill_parent"
                                android:background="#505b66">


        <ImageView android:id="@+id/ImageView01"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/cloudy"
                android:layout_centerHorizontal="true"/>
       

        <TableLayout
                        android:paddingTop="30dip"
                        android:paddingLeft="30dip"
                        androidpaddingRight="30dip"
                        android:layout_alignParentTop="true"
                        android:layout_centerHorizontal="true"
                        android:layout_height="wrap_content"
                        android:id="@+id/TableLayout"
                        android:layout_width="fill_parent">
                       
                        <TableRow
                                android:layout_centerHorizontal="true"
                                android:layout_height="wrap_content"
                                android:id="@+id/TableRow01"
                                android:layout_width="wrap_content">
                               
                                <TextView  
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:text="Sway"
                                android:id="@+id/sway"
                        />
                        <TextView  
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:text=""
                                android:id="@+id/xbox"
                        />
                        </TableRow>
                       
                        <TableRow
                                android:layout_centerHorizontal="true"
                                android:layout_height="wrap_content"
                                android:id="@+id/TableRow02"
                                android:layout_width="wrap_content">
                               
                                <TextView  
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:text="Surge"
                                android:id="@+id/sway"
                        />
                        <TextView  
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:text=""
                                android:id="@+id/ybox"
                        />
                        </TableRow>
                       
                        <TableRow
                                android:layout_centerHorizontal="true"
                                android:layout_height="wrap_content"
                                android:id="@+id/TableRow03"
                                android:layout_width="wrap_content">
                               
                                <TextView  
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:text="Heave"
                                android:id="@+id/heave"
                        />
                        <TextView  
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:text=""
                                android:id="@+id/zbox"
                        />
                        </TableRow>
                       
                        <TableRow
                                android:layout_centerHorizontal="true"
                                android:layout_height="wrap_content"
                                android:id="@+id/TableRow04"
                                android:layout_width="wrap_content">
                               
                                <TextView  
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:text="Yaw"
                                android:id="@+id/yaw"
                        />
                        <TextView  
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:text=""
                                android:id="@+id/xbox0"
                        />
                        </TableRow>
                        <TableRow
                                android:layout_centerHorizontal="true"
                                android:layout_height="wrap_content"
                                android:id="@+id/TableRow05"
                                android:layout_width="wrap_content">
                               
                                <TextView  
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:text="Pitch"
                                android:id="@+id/pitch"
                        />
                        <TextView  
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:text=""
                                android:id="@+id/ybox0"
                        />
                        </TableRow>
                        <TableRow
                                android:layout_centerHorizontal="true"
                                android:layout_height="wrap_content"
                                android:id="@+id/TableRow06"
                                android:layout_width="wrap_content">
                               
                                <TextView  
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:text="Roll"
                                android:id="@+id/roll"
                        />
                        <TextView  
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:text=""
                                android:id="@+id/zbox0"
                        />
                        </TableRow>
        </TableLayout>

        <LinearLayout  
                android:layout_alignParentBottom="true"
               android:orientation="vertical"
               android:layout_height="wrap_content"
               android:layout_width="fill_parent"
               android:paddingLeft="10dip"
               android:paddingRight="10dip"
               android:paddingBottom="5dip">

                <Button
                        android:text="@string/start"
                        android:id="@+id/startButton"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                />
                <Button
                        android:text="@string/stop"
                        android:id="@+id/stopButton"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content">
                </Button>
                <Button
                        android:text="@string/back"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:id="@+id/finishButton"
                />
</LinearLayout>
</RelativeLayout>

quello che vorrei ottenere è una tabella con due colonne, con la divisione tra le due colonne, a metà dello schermo, e magari, in aggiunta, il testo centrato nella propria cella. tipo:



avete suggerimenti? grazzzzie mille :D

EDIT: Mi sono auto risolto parte della cosa. Mi sono ricordato dell'attributo "weight" e allora ho aggiunto
Codice (XML): [Seleziona]
android:layout_gravity="top|center_horizontal"
android:layout_weight="1"
ad ogni TextView nella tabella. Ci siamo quasi, provo a sistemare pesi e padding per trovare una giusta configurazione. se c'è qualcos'altro che non mi torna riposto, per ora: AUTORISOLTO  o_O

« Ultima modifica: 24 Maggio 2010, 18:02:35 CEST da ScarfaceIII »

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1600
  • Respect: +232
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 5
  • Sistema operativo:
    L'ultima Ubuntu
Re:TableLayout fatto bene...
« Risposta #1 il: 24 Maggio 2010, 18:06:07 CEST »
0
Prova a vedere se questo si avvicina a quello che cerchi:
Codice (XML): [Seleziona]
<TableLayout
                android:paddingTop="30dip"
                android:layout_alignParentTop="true"
                android:layout_centerHorizontal="true"
                android:layout_height="wrap_content"
                android:id="@+id/TableLayout"
                android:layout_width="fill_parent"
                android:paddingLeft="50dp">

                <TableRow
                        android:layout_height="wrap_content"
                        android:id="@+id/TableRow01"
                        android:layout_width="wrap_content">

                        <TextView
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:text="Sway"
                                android:id="@+id/sway"
                                android:layout_weight="1" />
                        <TextView
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:text="123"
                                android:id="@+id/xbox"
                                android:layout_weight="1" />
                </TableRow>

                <TableRow
                        android:layout_height="wrap_content"
                        android:id="@+id/TableRow02"
                        android:layout_width="wrap_content">

                        <TextView
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:text="Surge"
                                android:id="@+id/sway"
                                android:layout_weight="1" />
                        <TextView
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:text="123"
                                android:id="@+id/ybox"
                                android:layout_weight="1" />
                </TableRow>

                <TableRow
                        android:layout_height="wrap_content"
                        android:id="@+id/TableRow03"
                        android:layout_width="wrap_content">

                        <TextView
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:text="Heave"
                                android:id="@+id/heave"
                                android:layout_weight="1" />
                        <TextView
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:text="123"
                                android:id="@+id/zbox"
                                android:layout_weight="1" />
                </TableRow>

                <TableRow
                        android:layout_height="wrap_content"
                        android:id="@+id/TableRow04"
                        android:layout_width="wrap_content">

                        <TextView
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:text="Yaw"
                                android:id="@+id/yaw"
                                android:layout_weight="1" />
                        <TextView
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:text="123"
                                android:id="@+id/xbox0"
                                android:layout_weight="1" />
                </TableRow>
                <TableRow
                        android:layout_height="wrap_content"
                        android:id="@+id/TableRow05"
                        android:layout_width="wrap_content">

                        <TextView
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:text="Pitch"
                                android:id="@+id/pitch"
                                android:layout_weight="1" />
                        <TextView
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:text="123"
                                android:id="@+id/ybox0"
                                android:layout_weight="1" />
                </TableRow>
                <TableRow
                        android:layout_height="wrap_content"
                        android:id="@+id/TableRow06"
                        android:layout_width="wrap_content">

                        <TextView
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:text="Roll"
                                android:id="@+id/roll"
                                android:layout_weight="1" />
                        <TextView
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:text="123"
                                android:id="@+id/zbox0"
                                android:layout_weight="1" />
                </TableRow>
        </TableLayout>
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline Paciotti

  • Utente junior
  • **
  • Post: 51
  • Respect: 0
    • sergiofabbrini
    • paciotti83
    • paciotti
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S
  • Play Store ID:
    Paciotti
  • Sistema operativo:
    Mac OS X 10.6 & Ubuntu 10.10
Re:TableLayout fatto bene...
« Risposta #2 il: 07 Giugno 2010, 01:24:37 CEST »
0
Sto cercando di realizzare una cosa simile, ma ho solo 4 textview da mettere 2x2: unico requisito è che vengano tutti e quattro uguali, ma nonostante abbia usato pesi uguali per tutti e fill_parent sia in altezza che in larghezza, la dimensione continua a dipendere dal testo contenuto (che può andare a capo). Consigli?
Se devo aprire un topic nuovo ditemelo, ma l'argomento è proprio lo stesso...

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1600
  • Respect: +232
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 5
  • Sistema operativo:
    L'ultima Ubuntu
Re:TableLayout fatto bene...
« Risposta #3 il: 07 Giugno 2010, 01:26:51 CEST »
0
Se posti l'XML ci do uno sguardo.

PS
Potresti sistemare il tuo profilo? Con "Sistema operativo" si intende l'OS che usi quando programmi, non la ROM del telefono :P
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline Paciotti

  • Utente junior
  • **
  • Post: 51
  • Respect: 0
    • sergiofabbrini
    • paciotti83
    • paciotti
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S
  • Play Store ID:
    Paciotti
  • Sistema operativo:
    Mac OS X 10.6 & Ubuntu 10.10
Re:TableLayout fatto bene...
« Risposta #4 il: 07 Giugno 2010, 01:37:22 CEST »
0
Certo! Eccolo:
Codice (XML): [Seleziona]
<?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="fill_parent"
        android:orientation="vertical">
        <TextView android:layout_height="wrap_content"
                android:layout_width="fill_parent" android:gravity="center_horizontal"
                android:text="@string/title" android:layout_weight="0"
                android:paddingTop="5sp" android:paddingBottom="5sp" android:id="@+id/title"></TextView>
        <TableLayout android:layout_height="fill_parent"
                android:layout_width="fill_parent" android:layout_weight="1">
                <TableRow android:layout_width="fill_parent"
                        android:layout_height="fill_parent" android:layout_weight="1">
                        <TextView android:layout_weight="2" android:layout_width="fill_parent"
                                android:layout_height="fill_parent" android:onClick="stop"
                                android:id="@+id/one" android:clickable="true" android:gravity="center"
                                android:text="Uno" android:background="#FF9900"
                                android:textColor="#000000" android:textSize="20sp" android:width="fill_parent"></TextView>
                        <TextView android:layout_width="fill_parent"
                                android:layout_weight="2" android:layout_height="fill_parent"
                                android:onClick="stop" android:id="@+id/two" android:clickable="true"
                                android:gravity="center" android:text="Due"
                                android:background="#FF0000" android:textColor="#000000"
                                android:textSize="20sp" android:width="fill_parent"></TextView>
                </TableRow>
                <TableRow android:layout_width="fill_parent"
                        android:layout_weight="1" android:layout_height="fill_parent">
                        <TextView android:layout_width="fill_parent"
                                android:layout_weight="2" android:layout_height="fill_parent"
                                android:onClick="stop" android:id="@+id/three" android:clickable="true"
                                android:gravity="center" android:text="Tre"
                                android:background="#FF0000" android:textColor="#000000"
                                android:textSize="20sp" android:width="fill_parent"></TextView>
                        <TextView android:layout_width="fill_parent"
                                android:layout_weight="2" android:layout_height="fill_parent"
                                android:onClick="stop" android:id="@+id/four" android:clickable="true"
                                android:gravity="center" android:text="Quattro"
                                android:background="#FF9900" android:textColor="#000000"
                                android:textSize="20sp" android:width="fill_parent"></TextView>
                </TableRow>
        </TableLayout>
        <TextView android:layout_height="wrap_content" android:id="@+id/infoBar"
                android:layout_weight="0" android:gravity="center_horizontal"
                android:layout_gravity="bottom" android:layout_width="fill_parent"
                android:text="Info Bar" android:paddingBottom="5sp"
                android:paddingTop="5sp"></TextView>
</LinearLayout>

Profilo aggiornato! Mi ero già accorto dell'errore, ma non ero riuscito a trovare dove poterlo correggere (possibile???).
Ciao e grazie per la risposta veloce e fuori orario.

EDIT: Ho cambiato il testo delle textview e così non si nota che sono differenti in larghezza, ma se provi a mettere delle parole di lunghezza diversa si vede subito.
« Ultima modifica: 07 Giugno 2010, 01:41:42 CEST da Paciotti »

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1600
  • Respect: +232
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 5
  • Sistema operativo:
    L'ultima Ubuntu
Re:TableLayout fatto bene...
« Risposta #5 il: 07 Giugno 2010, 01:46:24 CEST »
0
Fatto.

Codice (XML): [Seleziona]
<?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="fill_parent"
        android:orientation="vertical">
        <TextView
                android:layout_height="wrap_content"
                android:layout_width="fill_parent"
                android:gravity="center_horizontal"
                android:text="title"
                android:layout_weight="0"
                android:paddingTop="5sp"
                android:paddingBottom="5sp"
                android:id="@+id/title"></TextView>
        <TableLayout
                android:layout_height="fill_parent"
                android:layout_width="fill_parent"
                android:layout_weight="1">
                <TableRow
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent"
                        android:layout_weight="1">
                        <TextView
                                android:layout_weight="2"
                                android:layout_height="fill_parent"
                                android:onClick="stop"
                                android:id="@+id/one"
                                android:clickable="true"
                                android:gravity="center"
                                android:text="Uno"
                                android:background="#FF9900"
                                android:textColor="#000000"
                                android:textSize="20sp"
                                android:layout_width="0dp" />
                        <TextView
                                android:layout_weight="2"
                                android:layout_height="fill_parent"
                                android:onClick="stop"
                                android:id="@+id/two"
                                android:clickable="true"
                                android:gravity="center"
                                android:text="Due"
                                android:background="#FF0000"
                                android:textColor="#000000"
                                android:textSize="20sp"
                                android:layout_width="0dp" />
                </TableRow>
                <TableRow
                        android:layout_width="fill_parent"
                        android:layout_weight="1"
                        android:layout_height="fill_parent">
                        <TextView
                                android:layout_weight="2"
                                android:layout_height="fill_parent"
                                android:onClick="stop"
                                android:id="@+id/three"
                                android:clickable="true"
                                android:gravity="center"
                                android:text="Tre"
                                android:background="#FF0000"
                                android:textColor="#000000"
                                android:textSize="20sp"
                                android:layout_width="0dp" />
                        <TextView
                                android:layout_weight="2"
                                android:layout_height="fill_parent"
                                android:onClick="stop"
                                android:id="@+id/four"
                                android:clickable="true"
                                android:gravity="center"
                                android:text="Quattro"
                                android:background="#FF9900"
                                android:textColor="#000000"
                                android:textSize="20sp"
                                android:layout_width="0dp" />
                </TableRow>
        </TableLayout>
        <TextView
                android:layout_height="wrap_content"
                android:id="@+id/infoBar"
                android:layout_weight="0"
                android:gravity="center_horizontal"
                android:layout_gravity="bottom"
                android:layout_width="fill_parent"
                android:text="Info Bar"
                android:paddingBottom="5sp"
                android:paddingTop="5sp"></TextView>
</LinearLayout>

Il trucco, scoperto da Qlimax, consiste nel mettere android:layout_width="0dp" ;)
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline Paciotti

  • Utente junior
  • **
  • Post: 51
  • Respect: 0
    • sergiofabbrini
    • paciotti83
    • paciotti
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S
  • Play Store ID:
    Paciotti
  • Sistema operativo:
    Mac OS X 10.6 & Ubuntu 10.10
Re:TableLayout fatto bene...
« Risposta #6 il: 07 Giugno 2010, 01:54:23 CEST »
0
Mi piacerebbe capire anche perchè, ma vista l'ora tarda prenderò il trucco per buono senza insistere troppo.  :-P
Comunque dovremmo farne una raccolta di questi trucchetti...
Grazie a tutti e due.
« Ultima modifica: 07 Giugno 2010, 17:32:40 CEST da Paciotti »

Offline Paciotti

  • Utente junior
  • **
  • Post: 51
  • Respect: 0
    • sergiofabbrini
    • paciotti83
    • paciotti
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S
  • Play Store ID:
    Paciotti
  • Sistema operativo:
    Mac OS X 10.6 & Ubuntu 10.10
Re:TableLayout fatto bene...
« Risposta #7 il: 07 Giugno 2010, 02:13:54 CEST »
0
Non ho saputo resistere alla tentazione ed ho provato il codice:
Per la larghezza funziona tutto, ma un testo su due righe cambia l'altezza e lo stesso trucchetto non funziona (sparisce tutto!). Se fill_parent più weight funzionassero come dovrebbero sarebbe tutto più facile

Offline Paciotti

  • Utente junior
  • **
  • Post: 51
  • Respect: 0
    • sergiofabbrini
    • paciotti83
    • paciotti
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S
  • Play Store ID:
    Paciotti
  • Sistema operativo:
    Mac OS X 10.6 & Ubuntu 10.10
Re:TableLayout fatto bene...
« Risposta #8 il: 07 Giugno 2010, 17:32:22 CEST »
0
Ho provato anche a mettere il "trucchetto" del 0dp anche nell'altezza del TableRow, ma non cambia assolutamente niente! La cosa più semplice sarebbe poter indicare la dimensione in percentuale, come succede in HTML. Possibile sia un baco di android?