Autore Topic: Problema di over coi tab  (Letto 646 volte)

Offline Sakazaki

  • Utente normale
  • ***
  • Post: 396
  • Respect: +74
    • Mostra profilo
  • Dispositivo Android:
    Sony xperia Z
  • Play Store ID:
    Saka Labs
  • Sistema operativo:
    Windows 8
Problema di over coi tab
« il: 07 Agosto 2012, 11:14:25 CEST »
0
Salve ragazzi,
vi espongo il seguente problema:
Ho una TabActivity che come layout è composta da due sezioni: una testata con alcune TextView e ImageView e un corpo.
Il corpo è un TabHost, nel quale visualizzo due tab il cui contenuto è una lista di elementi.
Per il contenuto ho provveduto a scrivere una activity di popolamento legata ad un layout che prevede solo una ListView.
Entrambi i tab sono legati allo stesso contenuto, inizializzato in modo diverso via intent.

Vi riporto i due layout.

main.xml
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" >
    <!-- sezione di testa -->
    <LinearLayout
       xmlns:android="http://schemas.android.com/apk/res/android"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:background="@drawable/background_row"
       android:orientation="horizontal"
       android:padding="10dip" >

        <LinearLayout
           android:id="@+id/resync"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:layout_alignParentLeft="true"
           android:layout_marginRight="5dip"
           android:background="@drawable/image_bg"
           android:padding="3dip" >

            <ImageView
               android:id="@+id/resync_image"
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               android:src="@drawable/resync" />
        </LinearLayout>

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

            <TextView
               android:id="@+id/time"
               android:layout_width="fill_parent"
               android:layout_height="wrap_content"
               android:text="@string/defaultTime"
               android:textColor="#040404"
               android:textSize="12dip"
               android:textStyle="bold"
               android:typeface="sans" />

            <TextView
               android:id="@+id/master"
               android:layout_width="fill_parent"
               android:layout_height="wrap_content"
               android:text="@string/defaultMaster"
               android:textColor="#FF0000"
               android:textSize="10dip"
               android:textStyle="bold"
               android:typeface="sans" />
        </LinearLayout>
    </LinearLayout>
    <!-- FINE: sezione di testa -->
   
    <ImageView
       android:id="@+id/separator_1"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:contentDescription="separatore"
       android:src="@drawable/br_fgl" />

    <!-- corpo -->
    <LinearLayout
       xmlns:android="http://schemas.android.com/apk/res/android"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:background="@drawable/background"
       android:orientation="vertical" >

        <TabHost
           xmlns:android="http://schemas.android.com/apk/res/android"
           android:id="@android:id/tabhost"
           android:layout_width="fill_parent"
           android:layout_height="fill_parent" >

            <TabWidget
               android:id="@android:id/tabs"
               android:layout_width="fill_parent"
               android:layout_height="wrap_content" />

            <FrameLayout
               android:id="@android:id/tabcontent"
               android:layout_width="fill_parent"
               android:layout_height="wrap_content" >
            </FrameLayout>
        </TabHost>
    </LinearLayout>
    <!-- FINE: corpo -->

</LinearLayout>

pgList.xml
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<ListView
     xmlns:android="http://schemas.android.com/apk/res/android"
                   android:id="@+id/pgList"
                   android:layout_width="fill_parent"
                   android:layout_height="wrap_content"
                   android:paddingLeft="10dip"
                   android:paddingRight="15dip" >
</ListView>

Orbene, il mio problema è che quando viene visualizzato il tutto la ListView definita nel file pgList.xml viene renderizzata sopra il TabWidget definito in main.xml, impedendomi di fatto un cambio tab.

Non riesco a capire dove sta l'errore nei layout, voi riuscite a vederlo?

Grazie.

Offline Sakazaki

  • Utente normale
  • ***
  • Post: 396
  • Respect: +74
    • Mostra profilo
  • Dispositivo Android:
    Sony xperia Z
  • Play Store ID:
    Saka Labs
  • Sistema operativo:
    Windows 8
Re:Problema di over coi tab
« Risposta #1 il: 08 Agosto 2012, 08:41:48 CEST »
0
Banale errore di distrazione, risolto buttando l'occhio all'xml dopo 15 minuti passati a far altro =P

Codice (XML): [Seleziona]
<!-- corpo -->
    <LinearLayout
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:background="@drawable/background"
      android:orientation="vertical" >

        <TabHost
          xmlns:android="http://schemas.android.com/apk/res/android"
          android:id="@android:id/tabhost"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent" >

            <TabWidget
              android:id="@android:id/tabs"
              android:layout_width="fill_parent"
              android:layout_height="wrap_content" />

            <FrameLayout
              android:id="@android:id/tabcontent"
              android:layout_width="fill_parent"
              android:layout_height="wrap_content" >
            </FrameLayout>
        </TabHost>
    </LinearLayout>
    <!-- FINE: corpo -->

E' sbagliata la posizione del LinearLayout: non deve contenere il TabHost bensì deve stare all'interno, avendo il TabWidget e il FrameLayout come figli.