Android 得到FragmentTabhost 某一个Tab的View

项目使用FragmentTabhost做的主界面,要给每一个单独的Tab设置数字提醒 理所当然的想到是否有mFragmentTabhost.getTab(tag); 这种直接返回一个View 的方法,再去find到指定的控件设置值,发现并有没提供类型的方法,没办法只能来点其他的歪招了 ~

先上官方的使用方式:

mTabHost = new FragmentTabHost(getActivity());
mTabHost.setup(getActivity(), getChildFragmentManager(), R.id.fragment1);
mTabHost.addTab(mTabHost.newTabSpec("simple").setIndicator("Simple"), FragmentStackSupport.CountingFragment.class, null);
mTabHost.addTab(mTabHost.newTabSpec("contacts").setIndicator("Contacts"), LoaderCursorSupport.CursorLoaderListFragment.class, null);

可以看见 setup 进行了初始化,

mTabHost.addTab(mTabHost.newTabSpec("simple").setIndicator("Simple"),;

这句引起了我的注意

于是我来到源码

public class FragmentTabHost extends TabHost {

    public void addTab(TabHost.TabSpec tabSpec, Class<?> clss, Bundle args) {
        ...    
        addTab(tabSpec);
    }

}

ok 再去TabHost看看

public class TabHost extends FrameLayout {
    private TabWidget mTabWidget;

    public void addTab(TabSpec tabSpec) {
        ...
        View tabIndicator = tabSpec.mIndicatorStrategy.createIndicatorView();
        ...
        mTabWidget.addView(tabIndicator);
        ...
    }

}

到这里 相信你已经知道怎么做了!

mTabWidget.addView(tabIndicator);

没错 mTabWidget是Tab的父布局(可能个人叫法不同~) 所以得到单独的Tab布局就很简单了

mTabHost.getTabWidget().getChildTabViewAt(0); //对应的子布局

翻了这么久才找到这个方法 ,真心不易~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值