2010-08-24 4 views
6

У меня есть приложение с 4 вкладками. По умолчанию каждая ширина табуляции составляет 1/4 ширины экрана. Как я могу переопределить это?Разные размеры вкладок в Android

Мне нужно, чтобы вкладки имели разную ширину для каждой. Любые идеи о том, как это сделать?

+0

я также ищу то же, проверки этого: http://stackoverflow.com/questions/3446722/android-tabhost-problem-setindicator –

+0

выглядит интересно Paresh. Вы попробовали любое из предлагаемых решений (стиль или переопределение TabHost)? Прямо сейчас я смотрю на эту проблему и думаю, что лучший/самый быстрый подход - сделать наши собственные вкладки (с кнопками и слушателями). – momo

ответ

0

Попробуйте это:

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

Привет radek-k, я уже использую «wrap_content» и не имеет никакого значения, если я его изменю. Вероятно, из-за того, что я использую индикатор View as Tab, а не только текст. Спасибо в любом случае – momo

1

Наконец мне удалось иметь различные вкладки размера с помощью ToggleButton.

Мой XML, как это

<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" 
    /> 

Где каждый ToggleButton вкладка. Фокус здесь заключается в использовании веса для расширения вкладок, чтобы полностью заполнить экран.

teab_selector.xml выглядит следующим образом

<?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> 

мне еще нужно кодировать логику для ун-нажать на кнопку, когда выбран новые один и запустить намерение с той деятельностью, но выглядит хорошо до сих пор ,

2

Попробуйте это:

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

Это определенно изменяет высоту вкладки, но ваш текст будет отсутствовать ... PLS позвольте мне knw, если у вас есть решение для этой проблемы. –

+0

Ваш текст будет отсутствовать только в том случае, если размер текста и высота табуляции не пропорциональны. Попробуйте уменьшить размер текста табуляции или увеличить высоту вкладки, чтобы текст отображался. – Zeba

+0

работают как шарм – sivi