在Tabbed Activity(ViewPager)中切换Fragment
我用Android Studio的向导新建了一个Tabbed Activity,里面是ViewPager样式的,有三个tabs。如下:
  
但是我尝试在第一个tab中设置一个按钮,打开其他tab的时候,却提示错误:
java.lang.IllegalArgumentException: No view found for id 0x7f0c0068 (com.drunkpiano.fragmentlast:id/container) for fragment BlankFragment3{2a5d6e3b #0 id=0x7f0c0068}
在寻找错误的过程中我首先怀疑的是因为某种原因把position的位置颠倒了,因为我发现,如果在每个fragment(tab)的onCreate()里面加上println,会出现打开第一个fragment却提示第二个fragment的onCreate方法这样错位的情况。。于是我去StackOverFlow上提问了,描述如下:
However when the App runs and the view is in the first tab, I found it actually goes through the onCreateView() function in both Fragment and Fragment2(known from println() in onCreate() & onCreateView()), and when I swipe to Fragment2, it prints Fragment3. and when swipe to Fragment3, it prints nothing.. and after that I swipe back to Fragment2, It prints Fragment1. What's wrong with it?
结果别人说这是正常的:
Thats is how a FragmentPagerAdapter is supposed to work. It created the Fragment in selected position and also the previous position and next position.
不过我觉得只有next position,没有previous position。
并且评论里有人问我,你不读文档的吗。。。好惭愧,同时好想说文档英文看起来好累。。而且其实我是读了文档的,里面似乎并没有提到预先加载view这一点。http://developer.android.com/referenceh/android/support/v4/app/FragmentPagerAdapter.html
然后我怀疑是container的问题了,还是搞不懂,就又去提了个问题,链接。
评论里有人让我参考另一个问题,这个问题里题主也遇到类似情况,不过我的问题从他的题干中就能找到答案,也就是container不应该是整个ViewPager的container,而应该是当前fragment的container。我试了一下,确实可以跳转。但是跟普通fragment之间跳转不同的是,下一个fragment的界面只是覆盖在了当前界面上,我又使用了setVisibility(View.GONE)才将当前fragment的控件隐藏,我觉得这应该也是跟viewPager预读next position有关。
我的问题似乎是解决了,但是http://stackoverflow.com/questions/7723964/replace-fragment-inside-a-viewpager中的问题我还没有完全理解。明天看看。
View里面细节真多。
03/22/2015
在Tabbed Activity(ViewPager)中切换Fragment的更多相关文章
- 【原创】【ViewPager+Fragment】ViewPager中切换界面Fragment被销毁的问题分析
		
ViewPager中切换界面Fragment被销毁的问题分析 1.使用场景 ViewPager+Fragment实现界面切换,界面数量>=3 2.Fragment生命周期以及与Activ ...
 - 转载【ViewPager+Fragment】ViewPager中切换界面Fragment被销毁的问题分析
		
ViewPager中切换界面Fragment被销毁的问题分析 原文链接 http://www.cnblogs.com/monodin/p/3866441.html 1.使用场景 ViewPager+ ...
 - ViewPager中切换界面Fragment被销毁的问题
		
ViewPager中切换界面Fragment被销毁的问题分析 使用ViewPager+Fragment实现界面切换,当界面数量大于3时,出现二次滑动后数据消失的情况,下面由Fragment生命周期进行 ...
 - 友盟页面统计 - 关于Viewpager中的Fragment的生命周期
		
Activity和Fragment各自理论上的生命周期 Activity的生命周期是较为经典也最清晰的,在此不表: Fragment从出现到广泛运用也有一段时间了,其标准生命周期也仅比Activity ...
 - Tabbed Activity的使用(Fragment)
		
1,首先file -> new -> Activity -> Tabbed Activity 2,创建完成后,发现会自动的创建一大堆代码,大部分我们是不需要关心的,关于页面切换的代码 ...
 - 动态更新ViewPager中的Fragment(替换Fragment)
		
1.最近做需求,遇到一个问题,一个Fragment中包含了一个ViewPager,viewPager中包含一adapter ,adapter中包含了4个Fragment.想要动态替换第3个Fragme ...
 - 防止ViewPager中的Fragment被销毁的方法,更加流畅
		
在使用ViewPager与Fragment的时候,ViewPager会自动缓存1页内的数据,如下图: 当我们当前处在页面2的时候,页面1和页面3的View实际上已经创建好了,所以在我们拖动的时候是可以 ...
 - (转)防止ViewPager中的Fragment被销毁的方法
		
在使用ViewPager与Fragment的时候,ViewPager会自动缓存1页内的数据,如下图: 当我们当前处在页面2的时候,页面1和页面3的View实际上已经创建好了,所以在我们拖动的时候是可以 ...
 - viewpager中对fragment的操作
		
XXAdatper xxAdapter = (XXAdatper)viewpager.getAdapter(); XXFragment xxFragment= (XXFragment )adapte ...
 
随机推荐
- Session对象失效的客户端解决方法
			
ASP(Active Server Pages)技术的Session对象用于存储用户在对话期间的私有信息.当前用户的Session对象中定义的变量和对象能在页面之间共享,但是不能为应用中其他用户所访问 ...
 - json和jsonp以及ajax
			
简单的说: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. JSON的优点: 1.基于纯文本,跨平台传递极其简单: 2.Javascript原生支持,后 ...
 - Html简单的整页切换
			
恩,语言组织不是很好,直接上代码吧.... <!DOCTYPE html> <html> <head lang="en"> <meta c ...
 - SpringMVC hibernate增加多数据源 (SSHE/SYPRO增加多数据源为例)
			
SpringMVC hibernate增加多数据源 (以类SSHE/SYPRO增加多数据源为例作说明) 注:适用与SpringMVC + Hibernate的项目.其它框架的仅仅能说作參考用 配置Sp ...
 - ie63像素bug原因及解决办法不使用hack
			
1.浮动元素后边跟不浮动元素时会产生3像素bug 2.解决办法是不要忘记给浮动元素的相邻元素加上浮动.
 - 加入 centos 右键  terminal
			
centos6.2以上默认右键都没有terminal,现加入方法 例如以下 1> yum -y install nautilus-open-terminal 2> shutdown -r ...
 - js中比較好的继承方式
			
前面说到了原型和原型链,今天就来说说在面向对象中比較好的继承方式吧.先来看看两种基础的继承方式: 一.构造函数型 function People(name) { this.name=name; } P ...
 - centOS中修改语言环境
			
在终端中打开 键入 vim ~/.bashrc 在最后一行键入 export LANG="zh_CH.UTF-8"
 - SERVICE_STATUS结构各成员解析
			
在编写Windows服务的时候,需要调用API函数::SetServiceStatus()向服务控制管理器(SCM)提交更新当前服务的状态信息,其第2个参数为指向SERVICE_STATUS结构的指针 ...
 - WPF SDK研究 之 数据绑定
			
这一章介绍数据绑定.本章共计27个示例,全都在VS2008下.NET3.5测试通过,点击这里下载:ConnectedData.rar 1.ShowDataWithoutBinding注: <?M ...