- 浏览: 86705 次
- 性别:
- 来自: 北京
-
文章分类
最新评论
原文地址: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 748https://blog.kuoruan.com/24.htm ... -
探秘腾讯Android手机游戏平台之不安装游戏APK直接启动法
2014-08-01 12:02 412原文地址:http://blog.zhourunsheng.c ... -
Android移动操作系统的脆弱性分类研究
2014-03-18 14:46 639下载地址:http://www.paper.edu.cn/re ... -
Android实战技巧:深入解析AsyncTask
2014-03-06 11:21 363原文地址:http://blog.csdn ... -
Ubuntu android真机调试
2014-03-06 11:01 459关闭adb服务,切换到root,重启adb服务,离开root ... -
64位Ubuntu配置android环境报错(...adb": error=2, 没有那个文件或目录)
2014-02-07 13:29 593原文地址:http://blog.csdn.net/jayho ... -
【Android 声音处理】MediaPlayer和SoundPool
2014-01-14 17:08 1906原文地址:http://blog.sina ... -
Android自定义组件之一:View详解
2013-07-15 16:08 777原文地址:http://www.eoeandroid.com/ ... -
Android中error inflating class fragment
2013-06-19 17:21 1108原文地址:http://blog.csdn.net/qp120 ... -
拿来主义Android优秀开源项目
2013-06-05 11:57 934http://dengzhangtao.iteye.com/b ... -
android sqlite db-journal文件产生原因及说明
2013-06-05 11:37 3600原文地址:http://blog.csdn.net/chthq ... -
Android系统自带Camera方向判别
2013-05-22 16:40 724使用了OrientationEventListener, 也就 ... -
android onTouchEvent和setOnTouchListener中onTouch的区别
2013-03-27 10:35 743原文地址:http://blog.csdn ... -
Android源码编译整理总结
2013-01-08 11:37 689原文地址:http://www.cnblogs.com/hoj ... -
安卓图表引擎AChartEngine(一) - 简介
2012-12-20 17:47 1000原文地址:http://blog.csdn.net/lk_bl ... -
微技巧:Android手机隐藏指令大全
2012-12-07 11:36 775原文地址:http://news.xinhuanet.com/ ... -
自定义控件(attrs定义属性的使用)
2012-12-04 11:38 1164这里为了演示使用自定义变量,字体大小改用自定义的属性。 首先 ... -
二进制在数学中的妙用
2012-11-14 15:50 814原文地址:http://blog.csdn.net/hackb ... -
国外程序员推荐:每个程序员都应读的书
2012-11-06 10:58 809原文地址:http://blog.jobbole.com/58 ... -
android 程序开发的插件化 模块化方法 之一
2012-11-02 10:47 951http://www.cnblogs.com/hangxin1 ...
评论