2011-09-09 12 views
7

mam ustawić moje występy w następujący sposób:Android Tabs bez ikon

spec = tabHost.newTabSpec("tab1").setIndicator("Tab 1").setContent(intent); 
    tabHost.addTab(spec); 

a teraz mam kartę, która nie ma ikony, tylko tytuł, ale po prostu pozostawia przestrzeń pusta ikona wielkości z Tytuł na dole - próbowałem dopasować wysokość layout_height w xml, ale tekst zniknął, ponieważ jest renderowany poniżej punktu odcięcia.

Jak zmienić rozmiar karty i czy tytuł jest wyświetlany bez ikony?

+0

możliwe duplikat [Tabs bez ikony] (http://stackoverflow.com/questions/4460806/tabs-without-icon) –

Odpowiedz

11

Odpowiedź jest prosta: Nie możesz. Domyślna karta Android zawsze pozostawia puste miejsce na obrazie. Ale możesz tworzyć własne zakładki, aby zrekompensować to "ograniczenie" w zakładce domyślnej. Oto bardzo dobry samouczek do tworzenia niestandardowych kart.

http://joshclemm.com/blog/?p=136

Powodzenia Arkde

+0

Ya! Pracował świetnie - musiał zmienić orientację tabulatora w XML, a komentarze do czytania zorientowały się, jak dodać intencję. Dzięki Arkde! – GideonKain

1

Zmień swoją wielkość tabhost z układu i tylko do wyświetlania Tab kodu Płytka zapisu zgodnie z poniżej kod urywki

tabhost=getTabHost(); 


intent = new Intent(this,MainActivity.class); 
spec1 = tabhost.newTabSpec("").setIndicator("main_tab"); 
spec1.setContent(intent); 
tabhost.addTab(spec1); 

intent = new Intent(this,xyz.class); 
spec2 = tabhost.newTabSpec("").setIndicator("first_tab"); 
spec2.setContent(intent); 
tabhost.addTab(spec2); 
+0

Zrobiłem to i dlatego pojawił się jako duże, szare pudełko bez ikony i tytułu u dołu - rozwiązanie Arkde'a wydaje się być właściwym obejściem – GideonKain

2

Zmiana layout_height TabWidget i wagę w xml pracował dla mnie. Tekst nie jest wyśrodkowany na karcie, ale jest wyrównany wzdłuż dolnej krawędzi, tak jak poprzednio.

<TabWidget android:id="@android:id/tabs" 
    android:layout_width="fill_parent" android:layout_height="40dp" 
    android:gravity="bottom" /> 
0
// Center text displayed on a first tab 
View view = _tabHost.getTabWidget().getChildAt(0); 
if (view != null) { 
    // Hide icon 
    View tabImage = view.findViewById(android.R.id.icon); 
    if (tabImage != null) { 
     tabImage.setVisibility(View.GONE); 
    } 
    // Find text 
    TextView tabTitle = (TextView) view.findViewById(android.R.id.title); 
    if (tabTitle != null) { 
     // Change text gravity 
     tabTitle.setGravity(Gravity.CENTER); 
     // Remove text view from it's parent and re-add back to reset layout parameters 
     ViewGroup parent = (ViewGroup) tabTitle.getParent(); 
     parent.removeView(tabTitle); 
     parent.addView(tabTitle); 
     // New default layout parameters will have height set to WRAP_CONTENT, change it to MATCH_PARENT 
     ViewGroup.LayoutParams params = tabTitle.getLayoutParams(); 
     params.height = ViewGroup.LayoutParams.MATCH_PARENT; 
    } 
}