Sull’icona della scheda non mostrando

Sto cercando di fare una semplice scheda app in android con due schede. Il mio problema è che quando ho messo questo codice, nella scheda, solo viene mostrato il testo, ma non le icone.
Se ho messo il testo “” viene visualizzata l’icona.

Qualcuno potrebbe aiutarmi? La mia versione di android è la 4.0.3.

Grazie mille.

<?xml version="1.0" encoding="utf-8"?>

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

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

     <FrameLayout android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@android:id/tabcontent" >

        <LinearLayout android:id="@+id/tab1"
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="match_parent" >
            <TextView android:id="@+id/textView1"
                android:text="Contenido Tab 1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />
    </LinearLayout>

        <LinearLayout android:id="@+id/tab2"
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="match_parent" >
            <TextView android:id="@+id/textView2"
                android:text="Contenido Tab 2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />
    </LinearLayout>

     </FrameLayout>
</LinearLayout>
</TabHost>

e il codice di attività è

public class TabTestActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    Resources res = getResources();

    TabHost tabs=(TabHost)findViewById(R.id.tabhost);
    tabs.setup();

    TabHost.TabSpec spec=tabs.newTabSpec("mitab1");
    spec.setContent(R.id.tab1);
    spec.setIndicator("sss",
            res.getDrawable(android.R.drawable.ic_btn_speak_now));
    tabs.addTab(spec);

    spec=tabs.newTabSpec("mitab2");
    spec.setContent(R.id.tab2);
    spec.setIndicator("TAB2",
            res.getDrawable(android.R.drawable.ic_dialog_map));
    tabs.addTab(spec);



    tabs.setCurrentTab(0);
}

come potete vedere è molto semplice. Ma quando scrivo spec.setIndicator("",
res.getDrawable(android.R.drawable.ic_dialog_map));

Riesco a vedere l’icona, ma quando scrivo spec.setIndicator("TAB2",
res.getDrawable(android.R.drawable.ic_dialog_map));

Posso solo vedere TAB2, ma non entrambi.

Sembra che non ci sono enougth spazio per mostrare entrambi. Così ho cercato di farmi aumentare la scheda di altezza con questo

tabs.getTabWidget().getChildAt(1).getLayoutParams().height = 150; 

ma non sembra funzionare.

InformationsquelleAutor theholy | 2012-06-09



4 Replies
  1. 4

    //stai sopra il caricamento di 1°, così si può vedere solo l’ultima aggiunta una

     TabHost.TabSpec spec=tabs.newTabSpec("mitab1");
    
            spec.setIndicator("sss",
                    res.getDrawable(android.R.drawable.ic_btn_speak_now));
     Intent sssIntent = new Intent(this, First.class);
     spec.setContent(sssIntent);
            tabs.addTab(spec);
    
    TabHost.TabSpec spec2=tabs.newTabSpec("mitab2");
            spec2=tabs.newTabSpec("mitab2");
            spec2.setIndicator("TAB2",
                    res.getDrawable(android.R.drawable.ic_dialog_map));
    Intent sssIntent2 = new Intent(this, Second.class);
     spec2.setContent(sssIntent2 );
            tabs.addTab(spec2);
    • potresti spiegare un po ‘ di più? Non capisco quando dici sovraccarico ? grazie mille
    • Questo non funziona per me
  2. 8

    Ho sostituito il nome dell’etichetta con il valore null.
    Ora riesco a vedere l’icona da solo..
    Non poteva trovare un’altra soluzione.

    TabHost.TabSpec spec=tabs.newTabSpec("mitab1");
    
    spec.setIndicator("",
                      res.getDrawable(android.R.drawable.ic_btn_speak_now));
    Intent sssIntent = new Intent(this, First.class);
    spec.setContent(sssIntent);
    tabs.addTab(spec);
    • U r a destra.. dobbiamo chiaro etichetta della scheda per vedere l’icona..thats merda … a proposito Grazie per ur aiuto del compagno
    • se posto null riesco a vedere ..ma non in grado di vedere l’icona di testo qui sotto…posso dire io voglio l’icona e il testo da visualizzare…
  3. 2

    La visibilità dell’icona (insieme con l’etichetta) nella scheda dipendono dal dispositivo di destinazione e la versione della piattaforma android.

    Ho avuto uno sguardo più profondo in questo problema e ha aggiunto ulteriori dettagli e una soluzione a altri (molto simile) domanda su questo problema; può essere trovato qui:

    https://stackoverflow.com/a/11379708/414581

  4. 1

    Aggiungere questo in AndroidManifest.xml risolto il problema.

    <application 
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@android:style/Theme.NoTitleBar">
    </application>

Lascia un commento