2013-12-12 2 views
2

Это было действительно сбивает с толку для меня, так как всякий раз, когда я устанавливал StripEnabled из моего FragmentTabHost, он не делает так, как я этого хотел.FragmentTabHost TabWidget tabStrip не может быть настроен

Чтобы начать здесь код для FragmentTabHost:

mTabHost = (FragmentTabHost) findViewById(android.R.id.tabhost); 
     mTabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent); 

     Bundle b = new Bundle(); 

     b.putString("0", "tab1"); 
     mTabHost.addTab(mTabHost.newTabSpec("tab1").setIndicator(null,getResources().getDrawable(R.drawable.selector_tab1)), 
       Fragment1.class, b); 

     b = new Bundle(); 
     b.putString("1", "tab2"); 
     mTabHost.addTab(mTabHost.newTabSpec("tab2").setIndicator(null, getResources().getDrawable(R.drawable.selector_tab2)), 
       Fragment2.class, b); 

и XML-файл:

<?xml version="1.0" encoding="utf-8"?> 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

    <FrameLayout 
     android:id="@+id/realtabcontent" 
     android:layout_width="match_parent" 
     android:layout_height="0dip" 
     android:layout_weight="1" 
     /> 

    <android.support.v4.app.FragmentTabHost 
     android:id="@android:id/tabhost" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     > 

     <FrameLayout 
      android:id="@android:id/tabcontent" 
      android:layout_width="0dp" 
      android:layout_height="0dp" 
      android:layout_weight="0"/> 
    </android.support.v4.app.FragmentTabHost> 

</LinearLayout> 

Теперь, когда я добавляю эти строки кодов она работает просто отлично:

mTabHost.getTabWidget().setShowDividers(LinearLayout.SHOW_DIVIDER_NONE); 

Он успешно скрывает все разделители на вкладке, но когда я использую эту строку кода для отключения tabstrip:

mTabHost.getTabWidget().setStripEnabled(false); 

tabStrip все еще там, но когда я установил его в true, полоска для невыбранных элементов превращается в серое, и я не могу сказать почему.

Ну, моя главная цель здесь - изменить цвет этого tabStrip или иначе удалить его полностью, но с этой проблемой я не могу быть уверен в том, как я должен это делать. Я попытался использовать завышенный вид, но селектор больше не работает, поэтому я больше не могу сказать, выбран ли вкладка или нет. Надеюсь, кто-то может помочь мне в этом, как я могу это изменить. Но я действительно надеюсь, что кто-то может помочь мне в том, как изменить цвет полосы, так как это становится очень раздражающим.

ответ

3

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

tabHost.getTabWidget().getChildAt(0).setBackgroundResource(R.drawable.tab_selector); 

только для него для всех детей, и это работает. Не лучшее решение, хотя оно решает мою проблему. :)

+0

Взял меня, чтобы понять, что это. Ты проклятый герой: ') –

Смежные вопросы