`
uule
  • 浏览: 6348921 次
  • 性别: Icon_minigender_1
  • 来自: 一片神奇的土地
社区版块
存档分类
最新评论

fragment内嵌fragment之间传值+切换fragment

 
阅读更多

跳转:

从一个Fragment跳转到另一个Fragment

android从fragment跳转到fragment问题解决

[Android]Fragment的四种跳转

 

传值:

activity嵌套fragment,fragment内嵌fragment之间传值切换fragment

嵌套Fragment的使用及常见错误

android 布局中Fragment嵌套Fragment

Android Support v4 支持包中 Fragment用法

 

使用activity的fragmenttransation的replace方法替换

private void changeToAnotherFragment(){
    //如果是用的v4的包,则用getActivity().getSuppoutFragmentManager();
    FragmentManager fm = getActivity().getFragmentManager();
	
    //注意v4包的配套使用
    Fragment fragment = new 目标fragment();
    fm.beginTransaction().replace(容器控件id,fragment).commit();
}

 ================================================================================

 

当在使用activity嵌套fragment,fragment再嵌套子fragment时,相当于有两层fragment,假设最外层为第一层,其中一个Fragment为ParentfragmentA,该ParentFragmentA中又嵌套了三个fragment,也就是说第二层为ChildFragment1,ChildFragment2,ChildFragment3,如果想在其中一个子fragment中的控件点击切换到同一层的另一个子fragment

 

如图,在第二层fragment中,child1fragment中有两个控件viewI和viewII,点击viewI可以切换到同一层的fragment,比如,点击切换到ChildFragment2

 

实现如下:

在点击viewI时进行如下操作

 FragmentManager manager = getFragmentManager();//获取到父fragment的管理器  
 //获取到父parentFragment  
 ParentFragmentA home = (ParentFragmentA) manager.getFragments().get(0);  
//获取到ParentFragment的mViewPager变量        
 home.mViewPager.setCurrentItem(1);  

 说明一下,ParentFragmentA中声明的mViewPager必须为public。

 

说一下getFragmentManger方法

/** 
   * Return the FragmentManager for interacting with fragments associated 
   * with this fragment's activity.  Note that this will be non-null slightly 
   * before {@link #getActivity()}, during the time from when the fragment is 
   * placed in a {@link FragmentTransaction} until it is committed and 
   * attached to its activity. 
   * 
   * <p>If this Fragment is a child of another Fragment, the FragmentManager 
   * returned here will be the parent's {@link #getChildFragmentManager()}. 
   */  
  final public FragmentManager getFragmentManager() {  
      return mFragmentManager;  
  }  
  
  /** 
   * Return a private FragmentManager for placing and managing Fragments 
   * inside of this Fragment. 
   */  
  final public FragmentManager getChildFragmentManager() {  

 

官方API已经写明,getFragmentManger方法:如果该fragment是另一个fragment的子fragment,则获取到的是父fragment的manager

getChildFragmentManager方法:获取到外层fragment的子fragment的manager

 

 

对于viewII的点击事件,实现从Child1切换到ParentB

//获取到 所依附的activity对象  
  InitEmptyKeyActivity activity  = (InitEmptyKeyActivity) getActivity();  
 activity.mViewPager.setCurrentItem(IntentConstant.MANAGE_AND_OP_FRAGMENT); 

 ..

 

 

 

 

  • 大小: 16 KB
分享到:
评论

相关推荐

    Android Activity内嵌Fragment,当Activity recreate时Fragment被添加多次,造成界面重叠

    Activity作为应用程序的主要入口点,而Fragment则作为可重用的UI块,可以在多个Activity之间切换或组合。然而,在使用Fragment时,有时会出现一个问题:当Activity由于配置更改(如屏幕旋转)等原因需要重建...

    Fragment+ViewPager嵌套使用

    当我们需要在一个`Fragment`内部再使用`ViewPager`来实现子页面的切换时,就会涉及到`Fragment`与`ViewPager`的嵌套使用。下面将详细介绍这种嵌套使用的方式及其关键知识点。 首先,理解`Fragment`的生命周期至关...

    Android 多层嵌套后的 Fragment 懒加载实现示例

    在Android开发中,Fragment懒加载是一种优化策略,用于在Fragment真正需要显示时才进行数据加载或网络请求,以节省资源并提升用户体验。随着Feed流应用的流行,Fragment懒加载成为了开发者必须关注的知识点。传统的...

    fragment+web

    "Fragment+Web" 主题则涉及到如何在Fragment中嵌入网页内容,实现安卓应用与Web端内容的交互。 首先,让我们深入理解Fragment的基本概念和使用。Fragment是Android 3.0(API级别11)引入的,设计目的是为了更好地...

    fragment cordova android

    - 由于Fragment和CordovaWebView是两个不同的组件,它们之间的通信需要通过接口或本地JavaScript对象实现。 - 使用`addJavascriptInterface()`方法可以将Java对象暴露给JavaScript,允许JavaScript代码调用Android...

    Fragment案例

    通常,内嵌的Fragment应该通过getParentFragment()获取其父Fragment,而不是直接引用Activity。 9. **Fragment的生命周期与Activity的生命周期关联**:Fragment的生命周期受到所依附Activity的影响。例如,当...

    Fragment实现一个简易新闻浏览界面案例代码

    在 An­droid 中有些 Ac­tiv­ity 在手机上看起来很美观,但放在屏幕更大的平板类的设备上,可能就不一样了,而 Fragment 能在一个 Ac­tiv­ity 中内嵌多个独立的小 Ac­tiv­ity,有效的解决了 app 在大屏设备上...

    Android高级应用源码-ViewPager+Fragment侧滑选项卡,浏览器控件,两次退出.zip

    在这个项目中,每个Fragment可能包含一个特定的功能或内容区域,如新闻列表、图片展示等,通过ViewPager的滑动动作进行切换。 3. **侧滑选项卡**: 侧滑选项卡是一种常见的UI设计,用户可以通过左右滑动来切换页面...

    Android中Fragment多层嵌套时onActivityResult无法正确回调问题的解决方法

    问题的关键在于,当Fragment嵌套时,Activity的Fragment列表中实际上记录的是最外层的Fragment,而非真正发起startActivityForResult请求的内嵌Fragment。这就导致了内嵌Fragment无法接收到onActivityResult的回调。...

    安卓开发-ViewPager+Fragment侧滑选项卡,浏览器控件,两次退出.zip

    开发者可以通过`PagerAdapter`的子类,如`FragmentPagerAdapter`或`FragmentStatePagerAdapter`来配合ViewPager工作,实现Fragment的切换。 2. 侧滑选项卡实现: 在Android应用中,侧滑选项卡通常是通过在ViewPager...

    FragmentLayout

    Google(sdk19) 样例学习. fragment在eclipse下自动生成对应代码,样例中没有描述,必须试试才知。再就是refrence/guide/apiDemo都有同一个错误。更改下。两个样例,分别是内嵌类和独立类方式。

    框架,底部tab,可以左右滑动,内嵌tab

    `ViewPager`通常与Fragment配合使用,以实现Tab之间的滑动切换。 3. **ViewPager**:`ViewPager`是Android中的一个视图容器,用于展示可横向滑动的页面序列。通常与`PagerAdapter`一起使用,它可以自动处理页面的...

    Android中Fragment与Activity的生命周期对比

    Fragment与Activity之间的关系密切,它们的生命周期相互影响,理解这种关系对于开发高质量的Android应用至关重要。 Activity的生命周期包括以下几个主要阶段: 1. onCreate(): 当Activity首次创建时调用,用于初始...

    Fragment:您可以在一个活动上显示多个屏幕..这称为片段

    9. **Nested Fragment**:自Android 4.2(API级别17)起,引入了嵌套Fragment的概念,允许Fragment内嵌其他Fragment,进一步增强了布局设计的复杂性和层次感。 10. **Fragment的嵌套使用**:在大型项目中,Fragment...

    Android应用源码之ViewPager+Fragment侧滑选项卡,浏览器控件,两次退出-IT计算机-毕业设计.zip

    通过适配器(通常是`PagerAdapter`的子类)将数据绑定到ViewPager,使得用户可以在不同的Fragment之间平滑切换。 2. **Fragment**:Fragment是Android应用中的一个可重用的UI组件,它可以独立于Activity存在,也...

    ScrollView嵌套RecycleView解决高度不适配

    在Android开发中,ScrollView通常用于实现可滚动的内容视图,而RecyclerView则是一个高效的数据列表视图,能够自动管理并重用列表项。然而,当ScrollView嵌套RecyclerView时,可能会遇到一些常见问题,如RecycleView...

    Android应用开发中Fragment的静态加载与动态加载实例

    Fragment是作为Activity的UI的一部分,它内嵌在Activity中,多个Fragment可以把一个Activity分成多个部分,这在大屏幕手机或者平板电脑中会比较多的用到,这样就不用使用多个Activity来切换这么麻烦了。当然Fragment...

    Android源码——TabHost内嵌ActivityGroup界面管理源码_new_17.7z

    例如,当用户在选项卡之间切换时,需要调用finish()方法结束当前子Activity,并启动新的子Activity。 5. 源码分析:通过对源码的深入研究,我们可以了解到如何在TabHost的切换事件中正确地管理ActivityGroup的子...

    AndroidTabHost内嵌ActivityGroup界面管理源码.zip

    总之,AndroidTabHost内嵌ActivityGroup的界面管理是一种较旧的实践,适用于处理早期版本的Android应用。如今,更推荐使用Fragment和ViewPager来实现类似功能,它们提供了更好的可维护性和性能。尽管如此,理解这种...

    Android TabHost内嵌ActivityGroup界面管理源码.zip

    通过学习这些源码,开发者可以深入了解如何在早期Android版本中实现多标签页界面,并对比现代Android框架中的Fragment解决方案,理解两者之间的差异和优劣。不过,由于ActivityGroup已经过时,开发者在新项目中应该...

Global site tag (gtag.js) - Google Analytics