- 浏览: 79684 次
- 性别:
- 来自: 北京
文章分类
最新评论
原文地址: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
关于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 SDK下载速度慢无法更新?使用国内镜像站加速
2016-01-29 18:18 686https://blog.kuoruan.com/24.htm ... -
探秘腾讯Android手机游戏平台之不安装游戏APK直接启动法
2014-08-01 12:02 358原文地址:http://blog.zhourunsheng.c ... -
Android移动操作系统的脆弱性分类研究
2014-03-18 14:46 573下载地址:http://www.paper.edu.cn/re ... -
Android实战技巧:深入解析AsyncTask
2014-03-06 11:21 308原文地址:http://blog.csdn ... -
Ubuntu android真机调试
2014-03-06 11:01 405关闭adb服务,切换到root,重启adb服务,离开root ... -
64位Ubuntu配置android环境报错(...adb": error=2, 没有那个文件或目录)
2014-02-07 13:29 555原文地址:http://blog.csdn.net/jayho ... -
【Android 声音处理】MediaPlayer和SoundPool
2014-01-14 17:08 1856原文地址:http://blog.sina ... -
Android自定义组件之一:View详解
2013-07-15 16:08 725原文地址:http://www.eoeandroid.com/ ... -
Android中error inflating class fragment
2013-06-19 17:21 1040原文地址:http://blog.csdn.net/qp120 ... -
拿来主义Android优秀开源项目
2013-06-05 11:57 834http://dengzhangtao.iteye.com/b ... -
android sqlite db-journal文件产生原因及说明
2013-06-05 11:37 3486原文地址:http://blog.csdn.net/chthq ... -
Android系统自带Camera方向判别
2013-05-22 16:40 622使用了OrientationEventListener, 也就 ... -
android onTouchEvent和setOnTouchListener中onTouch的区别
2013-03-27 10:35 668原文地址:http://blog.csdn ... -
Android源码编译整理总结
2013-01-08 11:37 647原文地址:http://www.cnblogs.com/hoj ... -
安卓图表引擎AChartEngine(一) - 简介
2012-12-20 17:47 904原文地址:http://blog.csdn.net/lk_bl ... -
微技巧:Android手机隐藏指令大全
2012-12-07 11:36 721原文地址:http://news.xinhuanet.com/ ... -
自定义控件(attrs定义属性的使用)
2012-12-04 11:38 1109这里为了演示使用自定义变量,字体大小改用自定义的属性。 首先 ... -
二进制在数学中的妙用
2012-11-14 15:50 761原文地址:http://blog.csdn.net/hackb ... -
国外程序员推荐:每个程序员都应读的书
2012-11-06 10:58 760原文地址:http://blog.jobbole.com/58 ... -
android 程序开发的插件化 模块化方法 之一
2012-11-02 10:47 878http://www.cnblogs.com/hangxin1 ...
相关推荐
使用ViewPager + Fragment实现滑动切换页面的简单样例
使用ViewPager和Fragment实现底部导航滑动Demo,可直接复用
viewpager和fragment实现底部导航
ViewPager+Fragment基本使用,设计出更加灵活的界面风格
Android ViewPager+Fragment超高仿微信主界面(带底部图标切换动画)Android ViewPager+Fragment超高仿微信主界面(带底部图标切换动画)Android ViewPager+Fragment超高仿微信主界面(带底部图标切换动画)
ViewPager_Fragment_Demo
viewpager和fragment 搭配使用viewpager和fragment 搭配使用viewpager和fragment 搭配使用
viewpager+fragment左右滑动实现动态加载数据。动态刷新fragment
实现viewpager+fragment无限滑动,并且可以从activity传值给fragment从而实现对fragment的控制.
ViewPager和Fragment的结合使用
代码实现viewPager+fragment多页面如何让取消预加载,并且还有一个自定义模仿今日头条的顶部导航,项目导入eclipse中可直接运行。
很简单的实现viewpager+fragment左右滑动效果,类似商城app框架。
本资源为使用ViewPager和Fragment实现页面切换和底部导航栏的效果源码,建议配合Android应用开发--底部导航栏效果的一种实现方式(ViewPager&Fragment)文章查看。
ViewPager 套fragment 再套 ViewPager 套fragment,本例子是借鉴http://download.csdn.net/detail/u013682582/9462667此例子。解决重复加载fragment,使得切换时标题未选中的问题
ViewPager和Fragment结合实现页面滑动,以及实现仿新浪欢迎页;
ViewPager+Fragment导航栏支持滑动和点击切换fragment,点击某个按钮触发替换某个tab的fragment。如有tab1,tab2两个导航按钮,分别对应tab1fragment和tab2fragment,点击某个按钮触发,将tab2的tab2fragment替换tab3...
viewpager+fragment实现滑动导航的功能。简单实现了fragment间的传值,activity与fragment间的通讯。
TabLayout+ViewPager+Fragment实现分页滑动效果Demo
ViewPager+Fragment组成写成Tab导航栏
网易新闻首页效果(ViewPager+Fragment+ListView)