位置: 编程技术 - 正文
推荐整理分享问题:android activity中使用viewpager显示fragment(问题少年特训学校),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:问题整改清单及整改措施情况,问题的拼音,问题少年特训学校,问题的拼音,问题的英文,问题的拼音,问题导向,问题少年特训学校,内容如对您有帮助,希望把文章链接给更多的朋友!
在自己的开发项目DNF新闻中,在主页面的MainActivity extends FragmentActivity,其中,在activity中创建viewpager,并创建对应的Fragment。
代码如下:
list.add(newsFragment); list.add(noticeFragment); list.add(activesFragment);}//向Fragment中添加我们从网路上获得数据:
activesFragment.setTexts(hd.get("linkText"));activesFragment.setHrefs(hd.get("linkHref"));newsFragment.setTexts(xw.get("linkText"));newsFragment.setHrefs(xw.get("linkHref"));noticeFragment.setTexts(gg.get("linkText"));noticeFragment.setHrefs(gg.get("linkHref"));
//为viewPager设置适配器
viewPager.setAdapter(new ViewPagerAdapter(getSupportFragmentManager(),list));A: viewPager.setCurrentItem(0);viewPager.setOnPageChangeListener(MainActivity.this);
但是在横竖屏切换的过程中发现,initViewPager中的代码会执行创建三个Fragment,并且系统也会自动的调用这三个Fragment的无参数构造方法创建三个对象添加进ViewPager中,并且我们自己创建的Fragment并没有被显示出来,onCreateView方法也没有被执行。
所以这导致我们在横竖屏切换的时候,viewPager显示的是由系统创建的Fragment。但是系统创建的Fragment并没有我们需要传递的数据,导致横竖屏切换后,ViewPager中的Fragment中的listView没有数据显示。
自己的解决方案:
Fragment中onSaveInstanceState保存数据,onCreateView中恢复数据。
Activity中保存数据,恢复中不在执行网络请求下载数据。(实际此时保存的数据也没用,并没有传递给系统创建的Fragment)
总结:
View及Activity在横竖屏切换时会保存自己的状态,可以恢复自己先前的状态。
ViewPager保存了当前选中的Item的位置,恢复的时候会设置当前的item。(感觉A处的代码没有生效,未知原因)
疑问:
View和Activity会保存自己的哪些状态?(View点击listener没有保存)
有哪些控件系统会为我们创建?
系统为什么知道给ViewPager创建什么对象?
还请高手可以这些一些问题,纠结啊
Theme.AppCompat.Light的问题 遇到这个问题之后,习惯性的clean一下工程,结果出现了R文件的问题,首先处理R文件的问题:在清单文件中看目标sdk版本,是否符合自己所下载的sdk版
AndroidStudio调用so文件 将*.so文件拷贝到applibsarmeabi文件夹下修改build.gradle文件,在buildTypes下添加sourceSets{main{jniLibs.srcDirs=['libs']}}在调用处publicnativeStringstringFromJNI();//jni函数
能让 Windows 运行 Android 应用的 “Project Astoria” 是这么回事 微软在Build开场Keynote中透露Windows内会嵌入一个Android子系统,意在依靠现有的Android应用生态来弥补自己的空缺。今天,微软正式上线了ProjectAstoria主页
标签: 问题少年特训学校
本文链接地址:https://www.jiuchutong.com/biancheng/371083.html 转载请保留说明!友情链接: 武汉网站建设