FragmentTabHost 得到当前显示的Fragment对象

来源:互联网 发布:网络污词大全 编辑:程序博客网 时间:2024/05/01 13:21

在设置FragmentTabHost 的选项卡的时候,是通过FragmentTabHost的 addTab()方法进行设置每个选项卡的,

addTab()中三个参数,

第一个是一个TabSpec 对象,在创建的时候,我们需要设置一个Tag值,TabHost.TabSpec tabSpec = mTabHost.newTabSpec(tags)

第二个参数是该TabSpec 对应的Fragment的字节码。

第三个参数是需要设置的bundle对象


所以如果想要得到当前的Fragment对象,就可以根据这个Tag值,    String tag= mTabHost.getCurrentTabTag();得到当前选项卡的tag值

然后通过   getSupportFragmentManager().findFragmentByTag(tag),拿到当前的Fragment对象,从而进行一些处理。

可能还有其他的方式,我只想到了这一种


FragmentTabHost 我用的也不多,只是在修改bug的时候,我从当前的Fragment跳转到另外一个activity中,但是我需要跳转后那个activity的一些数据来刷新当前的Fragment ,所以就需要得到当前Fragment对象,一直没有想出来怎么得到,通过FragmentTabHost对象,怎么也没有找到一个得到当前Fragment对象的方法,无意间看到在设置FragmentTabHost对象的时候,传递进去了一个FragmentManager 对象,之前我是想着能不能通过FragmentTabHost对象拿到传递进去的FragmentManager对象,可是没有合适的方法,然后猛地想到,当前的activity就可以直接拿到这个FragmentManager对象的,就是getSupportFragmentManager()方法,这里面有一个findFragmentByTag()方法,需要一个Tag,我知道可以通过FragmentTabHost对象拿到当前的tab的tag值,这样就可以间接的实现得到当前Fragment对象了,虽然可能有点绕,但是曲线救国也是一种救国方式,能解决bug,就算一种方法,特此记录一下。仅供参考。

0 0
原创粉丝点击