无法更改片段选项卡主机选项卡的指示器颜色



我想在我的应用程序中实现一个自定义的FragmentTabHost。关于这个主题的文档是有限的,我无法让它与我的自定义指示器绘图(绿色)一起使用,它们不会显示在选项卡按钮下。

我只得到默认的蓝色指示器。可能出了什么问题?谢谢

...
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);     
        ActionBar actionBar = getActionBar();
        actionBar.setDisplayShowHomeEnabled(false);
        //actionBar.setDisplayShowTitleEnabled(false);        
        setContentView(R.layout.activity_main); 
        uiHelper = new UiLifecycleHelper(this, null);
        uiHelper.onCreate(savedInstanceState);      
        setContentView(R.layout.activity_main);
        mTabHost = (FragmentTabHost) findViewById(android.R.id.tabhost);
        mTabHost.setup(this, getSupportFragmentManager(), android.R.id.tabcontent);
        mTabHost.addTab(
                mTabHost.newTabSpec("tab1").setIndicator("Fidis", 
                getResources().getDrawable(R.drawable.tab_text_selector)),
                OffersFragmentActivity.class, null);
        mTabHost.addTab(
                mTabHost.newTabSpec("tab2").setIndicator("Locatii", 
                getResources().getDrawable(R.drawable.tab_text_selector)),
                PlacesFragmentActivity.class, null);
        mTabHost.addTab(
                mTabHost.newTabSpec("tab3").setIndicator("Harta", 
                getResources().getDrawable(R.drawable.tab_text_selector)),
                MapFragmentActivity.class, null);
        if(isFacebookLoggedIn()){
            System.out.println("We are logged in!");
        } else {
            showLogin();
        }
    }
...

tab_text_selector.xml

<!-- AOSP copyright notice can be found at the above link -->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- Non focused states -->
    <item android:state_focused="false" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/tab_unselected_holo" />
    <item android:state_focused="false" android:state_selected="true"  android:state_pressed="false" android:drawable="@drawable/tab_selected_holo" />
    <!-- Focused states -->
    <item android:state_focused="true" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/tab_unselected_focused_holo" />
    <item android:state_focused="true" android:state_selected="true"  android:state_pressed="false" android:drawable="@drawable/tab_selected_focused_holo" />
    <!-- Pressed -->
    <!--    Non focused states -->
    <item android:state_focused="false" android:state_selected="false" android:state_pressed="true" android:drawable="@drawable/tab_unselected_pressed_holo" />
    <item android:state_focused="false" android:state_selected="true"  android:state_pressed="true" android:drawable="@drawable/tab_selected_pressed_holo" />
    <!--    Focused states -->
    <item android:state_focused="true" android:state_selected="false" android:state_pressed="true" android:drawable="@drawable/tab_unselected_pressed_holo" />
    <item android:state_focused="true" android:state_selected="true"  android:state_pressed="true" android:drawable="@drawable/tab_selected_pressed_holo" />
</selector>

我遇到了这样的问题,我用以下代码语句解决了它:

mTabHost.getTabWidget().getChildAt(mTabHost.getCurrentTab()).setBackgroundResource(R.drawable.tab_selected);

祝你好运!

最新更新