Autore Topic: Problema con dimensioni delle celle in un TableLayout  (Letto 1598 volte)

Offline vecio88

  • Nuovo arrivato
  • *
  • Post: 42
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Problema con dimensioni delle celle in un TableLayout
« il: 27 Gennaio 2012, 11:17:19 CET »
0
Buongiorno a tutti, ho un problema con la dimensione delle celle in un Layout a  Tabella. praticamente alla riga dove vanno a finire i valori generati dal programma, appena ho messo una ImageView nella prima cella, mi ha sballato la visualizzazione, spostandomi le altre celle a destra. Io però ho settato il layout_width alla stessa dimensione delle altre, ma non fa niente. Sotto potete vedere il codice:
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<!-- Main Layout of Status Activity -->
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:orientation="horizontal"
   android:stretchColumns="5" >

    <TableRow >

        <ImageView
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
           android:layout_weight="1"
           android:src="@drawable/logo_sms" />
    </TableRow>

    <TableRow >

        <TextView
           android:layout_width="90px"
           android:layout_height="wrap_content"
           android:layout_weight="1" />

        <TextView
           android:layout_width="90px"
           android:layout_height="wrap_content"
           android:gravity="center"
           android:text="Ora" />

        <TextView
           android:layout_width="90px"
           android:layout_height="wrap_content"
           android:gravity="center"
           android:text="Valore" />

        <TextView
           android:layout_width="90px"
           android:layout_height="wrap_content"
           android:gravity="center"
           android:text="Unità" />

        <TextView
           android:layout_width="90px"
           android:layout_height="wrap_content"
           android:gravity="center"
           android:text="Fault" />
    </TableRow>

    <TableRow >

        <ImageView
           android:id="@+id/icona"
           android:layout_width="90px"
           android:layout_height="40px" />

        <TextView
           android:id="@+id/orario"
           android:layout_width="90px"
           android:layout_height="wrap_content"
           android:gravity="center" />

        <TextView
           android:id="@+id/valore"
           android:layout_width="90px"
           android:layout_height="wrap_content"
           android:gravity="center" />

        <TextView
           android:id="@+id/unita"
           android:layout_width="90px"
           android:layout_height="wrap_content"
           android:gravity="center" />

        <TextView
           android:id="@+id/numFault"
           android:layout_width="90px"
           android:layout_height="wrap_content"
           android:gravity="center" />
    </TableRow>

</TableLayout>

Offline E.Musso

  • Utente junior
  • **
  • Post: 82
  • Respect: +17
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy GT-S5660
  • Play Store ID:
    Emiliano Musso
  • Sistema operativo:
    Windows 7
Re:Problema con dimensioni delle celle in un TableLayout
« Risposta #1 il: 27 Gennaio 2012, 17:27:58 CET »
0
Ciao,
la TableRow crea tante celle quanti sono gli elementi in ciascuna di esse: se noti, hai l'ultima TableRow che contiene una ImageView e quattro TextView, mentre nel caso che ti da problemi, hai una TB con una sola ImageView, più una seconda TB con le tre TextView da sole. Per ovviare al tuo problema, dovrebbe essere sufficiente eliminare la row che contiene solo l'immagine, ed inserire l'ImageView nella seconda row.

Il tuo layout dovrebbe diventare cioè una cosa di questo tipo:

Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<!-- Main Layout of Status Activity -->
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:orientation="horizontal"
  android:stretchColumns="5" >

    <TableRow >

        <ImageView
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:layout_weight="1"
          android:src="@drawable/logo_sms" />

        <TextView
          android:layout_width="90px"
          android:layout_height="wrap_content"
          android:layout_weight="1" />

        <TextView
          android:layout_width="90px"
          android:layout_height="wrap_content"
          android:gravity="center"
          android:text="Ora" />

        <TextView
          android:layout_width="90px"
          android:layout_height="wrap_content"
          android:gravity="center"
          android:text="Valore" />

        <TextView
          android:layout_width="90px"
          android:layout_height="wrap_content"
          android:gravity="center"
          android:text="Unità" />

        <TextView
          android:layout_width="90px"
          android:layout_height="wrap_content"
          android:gravity="center"
          android:text="Fault" />
    </TableRow>

    <TableRow >

        <ImageView
          android:id="@+id/icona"
          android:layout_width="90px"
          android:layout_height="40px" />

        <TextView
          android:id="@+id/orario"
          android:layout_width="90px"
          android:layout_height="wrap_content"
          android:gravity="center" />

        <TextView
          android:id="@+id/valore"
          android:layout_width="90px"
          android:layout_height="wrap_content"
          android:gravity="center" />

        <TextView
          android:id="@+id/unita"
          android:layout_width="90px"
          android:layout_height="wrap_content"
          android:gravity="center" />

        <TextView
          android:id="@+id/numFault"
          android:layout_width="90px"
          android:layout_height="wrap_content"
          android:gravity="center" />
    </TableRow>

</TableLayout>
Bollettazione Interventi - Un taglio ai costi di tipografia per professionisti!
--
È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato

Offline vecio88

  • Nuovo arrivato
  • *
  • Post: 42
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:Problema con dimensioni delle celle in un TableLayout
« Risposta #2 il: 27 Gennaio 2012, 17:40:16 CET »
0
dai un occhiata all'allegato, cosi deve essere il risultato :)

Offline E.Musso

  • Utente junior
  • **
  • Post: 82
  • Respect: +17
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy GT-S5660
  • Play Store ID:
    Emiliano Musso
  • Sistema operativo:
    Windows 7
Re:Problema con dimensioni delle celle in un TableLayout
« Risposta #3 il: 27 Gennaio 2012, 17:45:18 CET »
+1
Ok.
Allora potresti fare così: come elemento root dell'XML non metti un TableLayout ma un LinearLayout.
Al suo interno (deve avere orientamento VERTICAL), inserisci un altro LinearLayout ed il tuo TableLayout.

Risulterà quindi un primo LinearLayout con orientamento verticale che contiene tutto, poi un LinearLayout interno che occuperà la metà superiore dello spazio a disposizione, mentre la metà inferiore sarà occupata dal TableLayout.

Nel LinearLayout interno setterai la proprietà background="@drawable/logo_sms", mentre nel TableLayout metterai la tua TableRow con il pallino verde ed i campi orario, ecc.
Così dovrebbe andare  ;-)
Bollettazione Interventi - Un taglio ai costi di tipografia per professionisti!
--
È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato

Offline vecio88

  • Nuovo arrivato
  • *
  • Post: 42
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:Problema con dimensioni delle celle in un TableLayout
« Risposta #4 il: 27 Gennaio 2012, 18:12:03 CET »
0
Grazie :) funziona...non sapevo si potessero combinare i vari layout...senti dovrei mette in basso una barra con 2 pulsanti uno che mi apre un'altra activity e l'altro per tornare indietro. Come posso fare?? metto un Linear Layout dopo la tabella??

Offline E.Musso

  • Utente junior
  • **
  • Post: 82
  • Respect: +17
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy GT-S5660
  • Play Store ID:
    Emiliano Musso
  • Sistema operativo:
    Windows 7
Re:Problema con dimensioni delle celle in un TableLayout
« Risposta #5 il: 28 Gennaio 2012, 20:53:03 CET »
0
Si, puoi aggiungere il LinearLayout dopo.
Per mantenere le proporzioni volute, ti consiglio di approfondire il parametro layout_weight.

Sul primo layout, che contiene tutto, dovrai impostare una weight_sum (ad esempio, android:weight_sum="3"), e poi, sui layout figli, un layout_weight che rappresenti quanto spazio di quello dichiarato sul padre utilizzare (p.es.: android:layout_weight = "2" per usare 2/3 dell'esempio precedente)
Bollettazione Interventi - Un taglio ai costi di tipografia per professionisti!
--
È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato

Offline vecio88

  • Nuovo arrivato
  • *
  • Post: 42
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:Problema con dimensioni delle celle in un TableLayout
« Risposta #6 il: 01 Febbraio 2012, 15:35:46 CET »
0
Ciao scusami se risp solo ora ma sono stato fuori per un po...cmq il problema e che non riesco a farlo apparire sul fondo il nuovo linearLayout

Offline E.Musso

  • Utente junior
  • **
  • Post: 82
  • Respect: +17
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy GT-S5660
  • Play Store ID:
    Emiliano Musso
  • Sistema operativo:
    Windows 7
Re:Problema con dimensioni delle celle in un TableLayout
« Risposta #7 il: 01 Febbraio 2012, 16:13:54 CET »
0
Ti mando una prozione di file XML che puoi seguire come traccia, sperando ti sia utile: occhio ai parametri weightSum e layout_weight, che realizzano la divisione degli elementi come desiderato. Fammi sapere   ;-)

Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:background="@drawable/appwallp"
   android:orientation="vertical"
   android:weightSum="3"
   >
   
       <LinearLayout
          android:id="@+id/linearLayout5"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:orientation="vertical"
          android:layout_weight="3">                      


           // -- QUI INSERIRAI IL TUO TABLELAYOUT E SUCCESSIVE TABLEROW

       </LinearLayout>


       <LinearLayout
          android:id="@+id/linearLayout5"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:orientation="vertical"
          android:layout_weight="0.2">  

           // -- QUI POTRAI INSERIRE I TUOI ELEMENTI DI FONDO PAGINA: IMMAGINI, PULSANTI, ECC.

       </LinearLayout>

</LinearLayout>
Bollettazione Interventi - Un taglio ai costi di tipografia per professionisti!
--
È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato

Offline vecio88

  • Nuovo arrivato
  • *
  • Post: 42
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:Problema con dimensioni delle celle in un TableLayout
« Risposta #8 il: 01 Febbraio 2012, 16:30:18 CET »
0
Sembra non funzionare...questo è il mio codice

Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<!-- Main Layout of Status Activity -->

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:orientation="vertical"
   android:weightSum="3" >

    <LinearLayout
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:layout_weight="3"
       android:orientation="vertical" >

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

            <ImageView
               android:layout_width="match_parent"
               android:layout_height="wrap_content"
               android:layout_weight="1"
               android:src="@drawable/logo_sms" />
        </LinearLayout>

        <TableLayout
           android:layout_width="wrap_content"
           android:layout_height="fill_parent"
           android:layout_weight="2"
           android:orientation="horizontal"
           android:stretchColumns="5" >

            <TableRow >

                <ImageView
                   android:layout_width="90px"
                   android:layout_height="wrap_content"
                   android:layout_weight="1" />

                <TextView
                   android:layout_width="90px"
                   android:layout_height="wrap_content"
                   android:gravity="center"
                   android:text="Ora" />

                <TextView
                   android:layout_width="90px"
                   android:layout_height="wrap_content"
                   android:gravity="center"
                   android:text="Valore" />

                <TextView
                   android:layout_width="90px"
                   android:layout_height="wrap_content"
                   android:gravity="center"
                   android:text="Unità" />

                <TextView
                   android:layout_width="90px"
                   android:layout_height="wrap_content"
                   android:gravity="center"
                   android:text="Fault" />
            </TableRow>

            <TableRow >

                <ImageView
                   android:id="@+id/icona"
                   android:layout_width="90px"
                   android:layout_height="40px" />

                <TextView
                   android:id="@+id/orario"
                   android:layout_width="90px"
                   android:layout_height="wrap_content"
                   android:gravity="center" />

                <TextView
                   android:id="@+id/valore"
                   android:layout_width="90px"
                   android:layout_height="wrap_content"
                   android:gravity="center" />

                <TextView
                   android:id="@+id/unita"
                   android:layout_width="90px"
                   android:layout_height="wrap_content"
                   android:gravity="center" />

                <TextView
                   android:id="@+id/numFault"
                   android:layout_width="90px"
                   android:layout_height="wrap_content"
                   android:gravity="center" />
            </TableRow>

            <!--
           <TableRow >

           <ImageView
               android:id="@+id/iconaT"
               android:layout_width="90px"
               android:layout_height="40px" />

           <TextView
               android:id="@+id/orarioT"
               android:layout_width="90px"
               android:layout_height="wrap_content"
               android:gravity="center" />

           <TextView
               android:id="@+id/valoreT"
               android:layout_width="90px"
               android:layout_height="wrap_content"
               android:gravity="center" />

           <TextView
               android:id="@+id/unitaT"
               android:layout_width="90px"
               android:layout_height="wrap_content"
               android:gravity="center" />

           <TextView
               android:id="@+id/numFaultT"
               android:layout_width="90px"
               android:layout_height="wrap_content"
               android:gravity="center" />
       </TableRow>
           -->
        </TableLayout>
    </LinearLayout>

        <!-- ------------------------------------------------------------------------------ -->
    <LinearLayout
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:layout_weight="0.2"
       android:orientation="vertical" >
       
        <Button />
    </LinearLayout>

</LinearLayout>

Offline E.Musso

  • Utente junior
  • **
  • Post: 82
  • Respect: +17
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy GT-S5660
  • Play Store ID:
    Emiliano Musso
  • Sistema operativo:
    Windows 7
Re:Problema con dimensioni delle celle in un TableLayout
« Risposta #9 il: 01 Febbraio 2012, 17:51:26 CET »
0
Occhio che alla fine del tuo layout chiudi un Button in maniera errata, probabilmente la causa dell'errore sta lì (non ho approfondito il resto, ti segnalo l'anomalia più evidente)
Bollettazione Interventi - Un taglio ai costi di tipografia per professionisti!
--
È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato

Offline vecio88

  • Nuovo arrivato
  • *
  • Post: 42
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:Problema con dimensioni delle celle in un TableLayout
« Risposta #10 il: 01 Febbraio 2012, 17:53:37 CET »
0
no niente