`

关于ViewPager和Fragment

阅读更多
原文地址:http://www.cnblogs.com/ihou/archive/2012/09/12/2681759.html
关于ViewPager和Fragment
1.如何获取Fragement的引用?

Fragment fragement = getSupportFragmentManager().            findFragmentByTag("android:switcher:"+R.id.ViewPage+":" + selectTab);



这个Tag可以从FragmentPagerAdapter的源码中找到,如下:

@Override
public Object instantiateItem(ViewGroup container, int position) {
    if (mCurTransaction == null) {
        mCurTransaction = mFragmentManager.beginTransaction();
    }

    // Do we already have this fragment?
    String name = makeFragmentName(container.getId(), position);
    Fragment fragment = mFragmentManager.findFragmentByTag(name);
    if (fragment != null) {
        if (DEBUG) Log.v(TAG, "Attaching item #" + position + ": f=" + fragment);
        mCurTransaction.attach(fragment);
    } else {
        fragment = getItem(position);
        if (DEBUG) Log.v(TAG, "Adding item #" + position + ": f=" + fragment);
        mCurTransaction.add(container.getId(), fragment,
                makeFragmentName(container.getId(), position));
    }
    if (fragment != mCurrentPrimaryItem) {
        fragment.setMenuVisibility(false);
        fragment.setUserVisibleHint(false);
    }

    return fragment;
}




其中的makeFragmentName方法产生的就是Tag

makeFragmentName的源码:

1
2
3
private static String makeFragmentName(int viewId, int index) {
        return "android:switcher:" + viewId + ":" + index;
    }




2.如何更新Fragement?

如果你需要在某一时刻动态的更改Fragement的布局或重新加载布局,可以使用此方法:

/***
         * 整体更新ViewPager的一个Fragement的内容
         *
         * @param pager
         *            需要更新的ViewPager
         * @param position
         *            需要更新的项目索引
         * @param newView
         *            更新后的View
         * */
        private void upDataFragement(ViewPager pager, int position, View newView) {
            ((FrameLayout) pager.getChildAt(position)).removeAllViews();
            ((FrameLayout) pager.getChildAt(position)).addView(newView);
        }
1
 
1
 
分享到:
评论

相关推荐

    Android ViewPager和Fragment 实现滑动切换页面

    在Android应用开发中,`ViewPager`和`Fragment`是两个重要的组件,它们常被结合使用以实现用户界面的滑动切换效果。`ViewPager`提供了一个可以左右滑动查看多个页面的容器,而`Fragment`则作为Activity的部分内容,...

    ViewPager+Fragment基本使用

    在Android开发中,ViewPager和Fragment是两个非常重要的组件,它们能帮助我们构建出动态、交互性强的用户界面。ViewPager主要用于实现页面滑动效果,而Fragment则可以看作是Activity的一个模块化部分,允许我们在一...

    使用ViewPager和Fragment实现底部导航滑动Demo

    本教程将详细讲解如何使用`ViewPager`和`Fragment`来实现这样的底部导航滑动Demo。 `ViewPager`是Android SDK中的一个强大组件,它允许用户通过左右滑动来浏览多个页面,非常适合于实现滑动浏览的场景。而`Fragment...

    ViewPager_Fragment_Demo

    在Android开发中,`ViewPager`和`Fragment`是两个非常重要的组件,它们常被结合使用以实现丰富的用户界面和交互效果。`ViewPager`主要用于展示可滑动的页面集合,而`Fragment`则代表一个可嵌入到Activity中的独立UI...

    ViewPager+Fragment_Demo

    【ViewPager+Fragment_Demo】是一个基于Android开发的项目示例,它展示了如何使用ViewPager和Fragment来构建一个功能完善的Tab导航栏。在Android应用设计中,Tab导航是一种常见的用户界面模式,用于展示多个相关的...

    Android ViewPager+Fragment超高仿微信主界面(带底部图标切换动画)

    Android ViewPager+Fragment超高仿微信主界面(带底部图标切换动画)Android ViewPager+Fragment超高仿微信主界面(带底部图标切换动画)Android ViewPager+Fragment超高仿微信主界面(带底部图标切换动画)

    ViewPager和Fragment的组合使用

    在Android应用开发中,ViewPager和Fragment是两个非常重要的组件,它们可以用来构建高效且动态的用户界面。在本文中,我们将深入探讨如何将这两者结合起来,以实现更丰富的交互体验。 ViewPager是Android SDK中的一...

    ViewPager和Fragment的结合使用

    在Android应用开发中,ViewPager和Fragment是两个非常重要的组件,它们常常被结合使用来实现丰富的用户界面和交互体验。ViewPager允许用户左右滑动查看多个页面,而Fragment则为应用程序提供了模块化屏幕区域,使得...

    viewpager和fragment实现底部导航

    在Android应用开发中,"ViewPager和Fragment实现底部导航"是一个常见的设计模式,它为用户提供了一种在多个页面间切换的直观方式。这个设计通常应用于具有多个主要功能区域的应用,如社交媒体、电商应用等。现在,让...

    viewpager+fragment无限滑动+传值给fragment

    在Android开发中,`ViewPager`和`Fragment`的结合使用是一种常见的实现页面滑动和内容切换的方式。`ViewPager`提供了一个优雅的用户界面组件,允许用户通过左右滑动来浏览多个`Fragment`,每个`Fragment`代表一个...

    android ViewPager嵌套Fragment动态删除和插入案例

    android ViewPagerr嵌套Fragment 动态删除 动态插入,完美实现动态删除和插入,Fragment懒加载,可适用于各版本。the sample of android viewpager daynmic update or delete

    viewpager+fragment左右滑动实现动态加载数据。动态刷新fragment

    在Android开发中,`ViewPager`和`Fragment`的结合使用是一种常见的实现页面滑动切换的手段,尤其适用于创建带有多个视图的复杂界面。`ViewPager`允许用户通过水平滑动来浏览相邻的`Fragment`,而`Fragment`则用于...

    简单实现viewpager+fragment

    在Android开发中,`ViewPager`和`Fragment`的结合使用是一种常见的布局管理方式,尤其适用于构建具有多个页面滑动切换的界面,如电商应用的分类、商品展示等场景。本教程将详细介绍如何简单实现`ViewPager`与`...

    ViewPager&Fragment实现页面切换、底部导航栏

    "ViewPager&Fragment实现页面切换、底部导航栏"是一个常见的设计模式,它提供了多页面间的平滑过渡和一个固定在屏幕底部的导航栏,使得用户可以轻松地在各个主要功能之间切换。下面我们将深入探讨这个主题,讲解如何...

    viewpager+fragment 动态更新数据

    在Android开发中,`ViewPager`和`Fragment`的结合使用是一种常见的实现页面滑动切换的方案。`ViewPager`允许用户左右滑动查看多个`Fragment`,每个`Fragment`通常代表一个独立的页面。动态更新数据是指在应用运行时...

    ViewPager 套fragment 再套 ViewPager 套fragment

    ViewPager 套fragment 再套 ViewPager 套fragment,本例子是借鉴http://download.csdn.net/detail/u013682582/9462667此例子。解决重复加载fragment,使得切换时标题未选中的问题

    ViewPager和Fragment结合实现页面滑动,以及欢迎页

    【标题】:在Android开发中,ViewPager和Fragment的结合使用是构建动态、可滑动页面的常见技术。这种组合能够创建出类似应用启动时的欢迎页效果,类似于新浪的欢迎界面,提供用户友好的交互体验。 【描述】:...

    ViewPager + Fragment Demo程序

    在这个"ViewPager + Fragment Demo程序"中,开发者尝试将ViewPager与Fragment相结合,以实现动态加载和展示多个Fragment页面的效果。虽然源代码可能没有太多的注释,但通过分析和学习这个Demo,我们可以深入理解这两...

    顶部导航+viewpager+fragment多页面取消预加载

    项目提供的源码应该包含了这些功能的实现,导入Eclipse后可以直接运行,这对于学习和理解`ViewPager`与`Fragment`的使用,以及自定义顶部导航的实现是非常有帮助的。你可以通过阅读和分析代码,深入了解这些知识点,...

    ViewPager+Fragment导航滑动点击切换,替换某个Tab的Fragment资源

    ViewPager+Fragment导航栏支持滑动和点击切换fragment,点击某个按钮触发替换某个tab的fragment。如有tab1,tab2两个导航按钮,分别对应tab1fragment和tab2fragment,点击某个按钮触发,将tab2的tab2fragment替换tab3...

Global site tag (gtag.js) - Google Analytics