2010-10-06 3 views
0

Каждый знает, как это сделал facebook:



alt textTabHost на Facebook для Android



Из того, что я знаю, что мы не можем изменить высоту tabhost. Я предполагаю, что они заложили «Frank Cho» взгляд на табуст, чтобы придать ему вид короче, но я могу ошибаться. Кто-нибудь знает, что происходит?

ответ

3

У вас действительно есть пользовательские виджеты вкладки. Вам нужно установить индикатор вкладки на какой-то пользовательский макет (с вашими чертежами), и вам должно быть хорошо идти.

Вот пол-пример:

final TabHost host = getTabHost(); 

final TextView indicator = (TextView) getLayoutInflater().inflate(
          R.layout.tab_indicator, 
          getTabWidget(), false); 
indicator.setText("Tab title"); 

host.addTab(host.newTabSpec("The tab tag") 
      .setIndicator(indicator) 
      .setContent([put your content here])); 
} 

Где макет tab_indicator может выглядеть следующим образом:

<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/tab_label" 
    android:layout_width="0dip" 
    android:layout_height="fill_parent" 
    android:layout_weight="1" 
    android:gravity="center" 
    android:textSize="14sp" 
    android:textStyle="bold" 
    android:minHeight="38dp" 
    android:background="@drawable/minitab" /> 

Minitab вытяжка является вытяжкой Селектора элемента (так что вы должны иметь изображение для выбран, по умолчанию, нажат и не выбран). Приложение facebook использовало белое обратное изображение для вкладки по умолчанию и синий градиент, предназначенный для невыделенных вкладок.

Заканчивать Расписание приложение Google IO для полного рабочего примера: http://code.google.com/p/iosched/ (и в частности TrackDetailActivity.java)

+0

Попробуй это ... спасибо – Sid

2

Кто-то еще было то, что я думаю, что это правильный ответ, но удалил его по какой-то причине ...

Высота, о которой идет речь, относится не к TabHost, а к TabWidget.

Попробуйте использовать версию setIndicator(), которая принимает View, а не просто String или String плюс вытяжку ресурса. Хотя я еще не играл с этим, я понимаю, что он прекрасно решает эту проблему.

Будьте осторожны, однако, что вы не закрываете вкладками, которые слишком сложно использовать.

+0

Да, это был я - я попал в пробел, и сообщение было опубликовано слишком рано. –

+0

Спасибо .... Моя проблема прямо сейчас в том, что вкладки ОГРОМНЫ и занимают слишком много места на экране для того, что я хочу, чтобы они делали. – Sid