2010-08-24 11 views
6

Mam aplikację z 4 zakładkami. Domyślnie szerokość każdej z zakładek wynosi 1/4 szerokości ekranu. Jak mogę to zmienić?Zakładki o różnych rozmiarach w Androidzie

Potrzebuję, aby zakładki miały inną szerokość dla każdego z nich. Jakieś pomysły, jak to osiągnąć?

+0

Ja również poszukuje dla tej samej kasie, to: http://stackoverflow.com/questions/3446722/android-tabhost-problem-setindicator –

+0

wygląda interesująco Paresh. Czy wypróbowałeś któreś z obu proponowanych rozwiązań (Styl lub nadpisanie TabHost)? Właśnie patrzę na ten problem i myślę, że najlepszym/najszybszym podejściem jest tworzenie własnych zakładek (z przyciskami i słuchaczami). – momo

Odpowiedz

0

Spróbuj tego:

<TabWidget android:layout_width="wrap_content" ... /> 
+0

Cześć radek-k, używam już "wrap_content" i nie ma różnicy, jeśli ją zmienię. Prawdopodobnie wynika z tego, że używam widoku jako wskaźnika tabulacji, a nie tylko tekstu. I tak dziękuję – momo

1

Wreszcie udało mi się mieć różne wielkości zakładki za pomocą ToggleButton.

Moje XML jest jak ten

<LinearLayout 
    android:id="@+id/tabs" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    android:layout_below="@id/header" 
> 

    <ToggleButton 
    android:id="@+id/tab1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:drawableRight="@drawable/icon_home" 
    android:textOn="" 
    android:textOff="" 
    android:background="@drawable/tabselector" 
    android:paddingLeft="15dip" 
    android:paddingRight="15dip" 
    android:layout_weight="0" 
    /> 
     <ImageView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:src="@drawable/top_menubar_separator" /> 

<ToggleButton 
    android:id="@+id/tab2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:drawableRight="@drawable/icon_store" 
    android:textOn="Store" 
    android:textOff="Store" 
    android:background="@drawable/tabselector" 
    android:paddingLeft="15dip" 
    android:paddingRight="15dip" 
    android:layout_weight="2" 
    /> 

Gdzie każdy ToggleButton jest odpowiednią kartę. Sztuczka polega na użyciu ciężaru, aby rozwinąć zakładki, aby całkowicie wypełnić ekran.

teab_selector.xml wygląda to

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/top_menubar_selected" 
      android:state_pressed="true" 
      /> 
<item android:drawable="@drawable/top_menubar_selected" 
      android:state_checked="true" 
      /> 
     <item  android:drawable="@drawable/top_menubar_1px" /> 
</selector> 

jeszcze trzeba kodować logiki dla un-Naciśnij przycisk, gdy jest nowy i uruchomić wybrany zamiar z ta działalność, ale ładnie wygląda tak daleko .

2

Spróbuj tego:

tabHost.getTabWidget().getChildAt(0).getLayoutParams().height = 35; 
+0

To zdecydowanie zmienia wysokość zakładki, ale twój tekst zniknie ... pls pozwól mi zadzwonić, jeśli masz rozwiązanie tego problemu. –

+0

Twój tekst zniknie, jeśli rozmiar tekstu i wysokość tabulatora nie są proporcjonalne. Spróbuj zmniejszyć rozmiar tabulatora lub zwiększ wysokość zakładki, aby tekst był widoczny. – Zeba

+0

działa jak urok – sivi