如何在activity中获取当前fragment

如何在activity中获取当前fragment,第1张

Fragment获取它所在的Activity:调用Fragment的getActivity()方法即可返回它所在的Activity

Activity获取它包含的Fragment:调用Activity关联的FragmentManager的findFragmentById(int id)或findFragmentByTag(String tag)方法即可获取指定的Fragment

在界面布局文件中使用<fragment>元素添加Fragment时,可以为<fragment>元素指定android:id或android:tag属性,这两个属性都可用于标识该Fragment,接下来可以通过findFragmentById(int id)或者findFragmentByTag(String tag)来获取该Fragment

有时候我们想要 *** 控viewpager中获取焦点的fragment的控件但是并没有getCurrentFragment 等类似的方法,但是提供了setPrimaryItem方法,但是这个实在adapter里面的,所有我们像个办法让他把当前的fragment从adapter中传出来,那么就要重写fragmentpageradapter

可以通过getActivity()来得到FragmentActivity对象,但是建议不要在Fragment中去 *** 作FragmentActivity的东西,建议在FragmentActivity中封装一些方法。

1Fragment是android30引入的新控件,果应用使用在30以下、16及以上的版本,需要引入v4包。

2Fragment支持在不同的Activity中使用并且可以处理自己的输入事件以及生命周期方法等。

3Fr期方法依赖于Activity的生命周期,例如一个Activity的onPause()的生命周期方法被调用的时候这个Activity中的所有的Fragment的onPause()方法也将被调用。

4FragmentManager提供了对Activity运行时的Fragment的添加、删除、替换的 *** 作。在Activity运行期间可以添加Fragment而不是在XML布局文件中进行定义。如果打算在Activity中改变Fragment的生命过程。如果要执行添加、删除、修改的 *** 作,必须通过FragmentManager的对象获得一个FragmentTransaction对象,通过它的API来执行这些 *** 作。

5两个单独的Fragment之间是不应该进行通信的。应该使用他们所存在的Activity作为沟通的纽带。

首先在Activity中实例化Fragment

ExampleFragment exFragment = (Fragment)getFragmentManager()findFragmentById(fragmentID);

然后获取Fragment中的控件

TextView tv =(TextView) exFragmentgetView()findViewById(tvID);

```

这样就OK了

以上就是关于如何在activity中获取当前fragment全部的内容,包括:如何在activity中获取当前fragment、怎么在viewpager中获取子fragment里面的控件、如何在Fragment中获取FragmentActivity中的布局等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9535019.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存