Как изменить стиль вкладки в Android? - PullRequest
8 голосов
/ 12 июня 2010

Я бы хотел, чтобы мои вкладки Android выглядели плоскими и простыми, как в официальном приложении TWitter. Как я могу переопределить стандартную (светлую) тему и изменить фоновые изображения для вкладок, используя определения стиля / темы?

Ответы [ 3 ]

16 голосов
/ 12 июня 2010

Вы можете настроить вкладки с помощью кода - вот выдержка из моего приложения, но вы также можете назначить темы вместо фонового изображения напрямую. (Я еще не использовал способ через атрибуты xml, не уверен, доступен ли он как-нибудь).

private void initTabs() {
    tabs = (TabHost) findViewById(R.id.tabhost);
    tabs.setup();
    tabs.setBackgroundResource(R.drawable.bg_midgray);

   TabHost.TabSpec spec;

   // Location info
   txtTabInfo = new TextView(this);
   txtTabInfo.setText("INFO");
   txtTabInfo.setPadding(0, 5, 0, 0);
   txtTabInfo.setTextSize(11);

   txtTabInfo.setBackgroundResource(R.drawable.bg_tab_left_active_right_inactive);
   txtTabInfo.setTextColor(Color.DKGRAY);
   txtTabInfo.setGravity(Gravity.CENTER_HORIZONTAL);
   txtTabInfo.setHeight(39);
   spec = tabs.newTabSpec("tabInfo");
   spec.setContent(R.id.tabInfo);
   spec.setIndicator(txtTabInfo);
   tabs.addTab(spec);
   ...
}
3 голосов
/ 22 мая 2012

Я использовал следующее определение моего рисования, tab_background.xml

   <selector xmlns:android="http://schemas.android.com/apk/res/android" >
        <item android:state_selected="true" android:drawable="@drawable/tab_bg_selected" />
        <item android:drawable="@drawable/tab_bg_normal" /> 
   </selector>

Затем переберите вкладки, чтобы установить их.

TabWidget tabWidget = tabHost.getTabWidget();

for(int i=0; i<tabWidget.getChildCount(); i++)
  tabWidget.getChildAt(i).setBackgroundResource(R.drawable.tab_background);
0 голосов
/ 12 июня 2010

Вы также можете сделать это через XML и создать / определить глобальную тему для всех вкладок в вашем приложении.Больше информации о создании тем виджетов здесь: http://developer.android.com/guide/topics/ui/themes.html

...