如何在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

什么叫子fragment。 fragment是不能包含的。另外view类的东西,最好尽量不要static引用一个activity中多个fragment通信一般通过activity做桥梁。fragment申明一个接口,activity去实现,fragment改变后通过接口通知activity,然后activity再通知另一个fragment。fragment之间最好不要有直接联系。另外,也可以用广播或者其他类似的方法实现

1、在Fragment中viewgetActivity()findViewById(Ridxx); 2、其中getActivity可以获取到该Fragment引用的Activity, 3、之后通过findViewById获取到其他与该Activity相关联的Fragment中的控件引用。

getSupportFragmentManager()主要用于支持 30以下android系统API版本,30以上系统可以直接调用getFragmentManager() ,因为fragment是30以后才出现的组件,

为了这之前的系统版本也能使用fragment,借助V4包里面的getSupportFragmentManager()方法来间接获取FragmentManager()对象,30版本之后,有了Fragment的api,就可以直接使getFragmentManager()这个方法来获取对象。

FragmentManager顾名思义是用来管理fragment的

getSupportFragmentManager()就是获取所在fragment 的父容器的管理器,

getFragmentManager()同理。

getChildFragmentManager()所得到的是在fragment 里面子容器的管理器。

FragmentManager宿主环境指的是其管理类,通常在Activity中通过接口getSupportFragmentManager或者getFragmentManager获得FragmentManager对象, 可以认为Activity是FragmentManager的宿主环境

FragmentManager宿主环境类状态变化时(如onStart, onResume, onStop等回调),FragmentManager的状态也随之更新(FragmentManager类有一个成员变量mCurState来记录当前状态),同时会同步其管理的所有Fragment的状态

从用户的角度来看, FragmentManager的宿主环境类管理了一系列Fragment,并且Fragment随着FragmentMannager的宿主环境类的状态变化而变化

重写Fragment的onAttach()@Override public void onAttach(Activity activity) { // TODO Auto-generated method stub superonAttach(activity); //获取activity根视图,rootView设为全局变量 rootView=activitygetWindow()getDecorView(); }之后 把你上面的代码 RadioButton radioButton01 = (RadioButton)activityfindViewById(RidradioButton01);改为 RadioButton radioButton01 = (RadioButton)rootViewfindViewById(RidradioButton01);有些方法都忘得差不多了 查看更多答案>>

以上就是关于如何在activity中获取当前fragment全部的内容,包括:如何在activity中获取当前fragment、子fragment如何刷新父fragment的内容、ViewPager嵌fragment,为什么可以findViewById找到fragment中控件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存