改变FragmentTabHost选中的文字颜色。

使用FragmentTabHost时遇到选中某一个Tab后字体颜色不改变的问题,可以使用以下方法来解决:

mTabHost.setOnTabChangedListener(new TabHost.OnTabChangeListener() {

@Override

    public void onTabChanged(String s) {

mTabHost.setCurrentTabByTag(tabId); 

  upDateTab(mTabHost); 

});

/**

* 更新文字颜色。

*

* @param mTabHost

*/

private void upDateTab(FragmentTabHost mTabHost) {

for (int i =0; i < mTabHost.getTabWidget().getChildCount(); i++) {

TextView tv = (TextView) mTabHost.getTabWidget().getChildAt(i).findViewById(R.id.tv_tab_text_view);

        if (mTabHost.getCurrentTab() == i) {//选中

            tv.setTextColor(this.getResources().getColor(R.color.tab_select_text_color));

        }else {//不选中

            tv.setTextColor(this.getResources().getColor(R.color.tab_un_select_text_color));

        }

}

}

使用上面的方法有一个问题就是刚进入首页,文字颜色是没有改变的,可以在

mTabHost.setCurrentTab(2);

之后去调用一下update方法即可。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容