`
liuguofeng
  • 浏览: 449443 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

FragmentTabHost切换Fragment时避免重复加载UI

 
阅读更多

使用FragmentTabHost时,Fragment之间切换时每次都会调用onCreateView方法,导致每次Fragment的布局都重绘,无法保持Fragment原有状态。

        解决办法:在Fragment onCreateView方法中缓存View

 

[java] view plaincopy
 
  1.     private View rootView;//缓存Fragment view  
  2.       
  3.     @Override  
  4.     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {  
  5.         if(rootView==null){  
  6.             rootView=inflater.inflate(R.layout.tab_fragment, null);  
  7.         }  
  8.  //缓存的rootView需要判断是否已经被加过parent, 如果有parent需要从parent删除,要不然会发生这个rootview已经有parent的错误。  
  9.         ViewGroup parent = (ViewGroup) rootView.getParent();  
  10.         if (parent != null) {  
  11.             parent.removeView(rootView);  
  12.         }   
  13.         return rootView;  
  14.     }  
分享到:
评论

相关推荐

    Android中FragmentTabHost结合fragment实现选项卡功能

    FragmentTabHost允许开发者在每个选项卡中加载不同的Fragment,这样可以更好地支持多任务处理和复杂的用户界面设计。 Fragment是Android 3.0(API级别11)引入的一种UI组件,它是Activity的一部分,可以在Activity...

    使用hide来隐藏fragment防止重复加载

    在给定的场景中,开发者遇到了一个常见问题:当使用FragmentTabHost进行Tab切换时,Fragment会重复加载,这可能导致性能下降和用户体验不佳。为了解决这个问题,开发者选择使用`hide()`方法来隐藏Fragment,而不是...

    fragment + fragmentTabHost实现底部菜单与自定义fragment管理

    7. 监听BottomNavigationView的选中事件,当选择不同菜单项时,使用FragmentManager的beginTransaction()方法切换Fragment。 在实际项目中,可能还需要考虑Fragment的生命周期管理、数据传递以及状态保存等问题。...

    Fragment+FragmentTabHost实现仿新浪微博底部菜单栏效果(源码)

    而FragmentTabHost则将这些小窗口替换为Fragment,使得在各个标签页之间切换时,能够更加灵活地管理Fragment的生命周期。 实现步骤如下: 1. **创建Fragment的子类**:首先,为每个底部菜单项创建一个Fragment的...

    FragmentTabhost:Fragment+FragmentTabHost

    在Android开发中,`FragmentTabHost`是Google提供的一个组件,用于在Activity中实现标签页切换功能,并且每个标签页可以加载不同的`Fragment`。`FragmentTabHost`结合了`Fragment`的优势,使得UI设计更加灵活,同时...

    Fragment的页面切换

    可以通过在AndroidManifest.xml中为Activity设置`android:configChanges="orientation|screenSize"`来手动处理配置更改,避免重建Fragment。 8. **处理回退栈**:FragmentTransaction的`addToBackStack()`方法可以...

    Fragment实现tab实例

    在Fragment中使用FragmentTabHost,可以避免在Activity中直接处理多个Fragment的复杂性,使代码更易于维护。 实现FragmentTabHost的步骤如下: 1. **创建Fragment**:首先,你需要创建代表每个选项卡内容的...

    fragmenttabhost

    它结合了TabHost和Fragment的功能,使得在Android应用中实现多标签页切换并加载不同的Fragment内容变得更为简单。下面我们将深入探讨FragmentTabHost的相关知识点。 **1. TabHost与FragmentTabHost的区别** 在...

    FragmentTabHost的基本使用

    为了响应用户点击Tab时切换Fragment,我们还需要在`onTabChanged`方法中处理: ```java tabHost.setOnTabChangedListener(new TabHost.OnTabChangeListener() { @Override public void onTabChanged(String tabId...

    fragment+fragmenttabHost仿新浪微博底部菜单栏

    在Android应用开发中,"fragment+fragmenttabHost仿新浪微博底部菜单栏"是一个常见的设计模式,用于构建具有多个可切换视图的应用界面,类似于微博应用中的底部导航栏。这个设计允许用户在不同功能区域之间平滑地...

    FragmentTabHost动态加载TAB页签实现

    在Android应用开发中,UI设计往往需要展示多个可切换的视图,这时我们可以利用`TabHost`组件来创建带有标签页的应用界面。`TabHost`是Android提供的一个用于实现标签栏与内容区域交互的容器,它允许我们创建具有多个...

    Android两级导航菜单栏--FragmentTabHost嵌套FragmentTabHost的使用

    2. 为一级FragmentTabHost设置tab监听器,以便在切换tab时加载对应的Fragment。 3. 在一级Fragment中,为二级FragmentTabHost设置tab和对应的Fragment。这可以通过在onCreateView或onActivityCreated方法中完成。 4....

    (1)android标签切换界面(重用版)

    **Fragment** 是Android应用中可重复使用的UI单元,它可以独立于Activity存在。在标签切换界面中,每个标签通常对应一个Fragment,这样可以更好地组织代码,每个Fragment可以专注于自己的业务逻辑和视图展示。使用...

    FragmentTabHost的使用 (状态保存)

    FragmentTabHost是TabHost的子类,主要目的是在每个标签页中加载Fragment。首先,你需要在布局文件中添加一个FragmentTabHost,并设置其id为android.R.id.tabhost。然后,通过调用`setup()`方法初始化...

    android中fragment实现tabhost标签切换效果

    为了在Tab切换时动态加载和切换Fragment,我们需要监听TabHost的`OnTabChangeListener`,并在切换时使用FragmentManager的`beginTransaction().replace()`方法替换当前显示的Fragment: ```java tabHost....

    FragmentTabhost

    尽管通常不需要手动处理Tab点击事件,因为FragmentTabHost会自动处理切换Fragment,但如果你想在切换时执行额外的操作,可以重写`onTabChanged()`方法。 5. **配置Fragment**: 在Fragment的`onCreateView()`或`...

    android fragmenttabhost实例

    FragmentTabHost结合了TabHost和Fragment的功能,使得UI设计更加灵活且功能丰富。下面将详细介绍如何在Android Studio中使用FragmentTabHost以及相关的知识点。 首先,FragmentTabHost继承自TabHost,它提供了添加...

    FragmentTabHost.rar

    FragmentTabHost是Android开发中的一个组件,主要用于在同一个Activity中管理多个Fragment,并通过Tab进行切换。这个组件在处理复杂的UI布局和用户交互时非常有用,因为它允许你在不同的Tab之间分割应用的功能,提供...

    FragmentTabhost实现android底部导航

    在Android应用开发中,底部导航(Bottom Navigation)是一种常见的用户界面设计模式,它...然而,`FragmentTabHost`仍然是一个很好的学习和理解Fragment与Tab交互的工具,对于理解Android UI组件的工作原理非常有帮助。

    安卓FragmentTab选项卡相关-基于Fragment实现Tab的切换滑出侧边栏.zip

    而TabLayout则提供了更现代的选项卡样式,与ViewPager结合使用,可以在用户切换Tab时加载相应的Fragment。 项目中可能包含以下几个关键部分: 1. **MainActivity**:这是整个应用的入口点,通常负责设置和管理...

Global site tag (gtag.js) - Google Analytics