- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在制作一个包含 4 个主视图的应用。我希望所有这些都保留在顶部的 LIST 菜单中(现在没问题)。
使用 Fragments,我可以在不执行其他 Activity 的情况下更改 View ,但是由于我的一个 View 有一个 ViewPager,它根本不起作用(当我第一次加载 View 时,内容没问题,但是第二次,ViewPager 上的 View 消失,只有当我离开 2 个索引位置并返回时才会出现)(参见图片,第一次加载时间和第二次加载时间)
请注意,ViewPager 不会显示菜单项,它实际上是当前菜单项 fragment 的一部分(在本例中为“Simula'c~ao”)
我的问题是:这是一个已知问题吗?是否有简单的方法来解决它,或者我必须以其他方式解决?我已经在互联网上搜索过这个问题,但对我没有任何帮助(无效,设置 on getItemPosition
以返回 POSITION_NONE
...)
我查看了 ViewPager 类,一切似乎都正常,我修改了它,以便每次渲染 View 时,它都会强制渲染所有内容,但这种方式都不起作用。
我尝试将可见性设置为 GONE 和 VISIBLE
我试过拆下适配器
尝试缓存 View ,并返回缓存。
有一件事情成功了:改变手机的方向。那行得通。
尝试了很多我什至记得的事情......我对此有点生气,因为过去的 24 小时根本没有帮助我解决这个“谜团”。我希望你们中的一些人可以 =]
我的代码: https://www.dropbox.com/s/u4mlxr3k6ta9yrm/MainActivity.java https://www.dropbox.com/s/2dqfnzjs2wl89hj/SimulationFragment.java
观点: https://www.dropbox.com/s/d6ruc1zjovqu6ob/activity_main.xml https://www.dropbox.com/s/lp1iea13klr77iq/activity_simulation.xml https://www.dropbox.com/s/1mkl3jqmo7g4wh8/item_simulation.xml
最佳答案
好吧,在花了很长时间试图发现这到底是怎么回事之后,@anup-cowkur 引导我找到了一条可以解决我的问题的道路。
起初,我认为问题出在 PageView
上,我下载了支持库,编辑,更改了很多东西,但问题不在那里。
其实问题出在FragmentPagerAdapter
上。他为每个 ViewPager
fragment 使用了一种“缓存”。因此,当我返回 View 时,他没有得到“通知”,导致显示的最后一个 fragment “实际上”不存在于父 View 中(在这种情况下,主要 fragment ,它包含我来自 ViewPager 的其他 fragment ).
因为它们是在 FragmentManager 上注册的,所以我所做的就是侵入 FragmentPagerAdapter,实现这个方法:
FragmentPagerAdapter.java
public void clear(ViewGroup container){
if (mCurTransaction == null) {
mCurTransaction = mFragmentManager.beginTransaction();
}
for(int i = 0; i < getCount(); i++){
final long itemId = getItemId(i);
// Do we already have this fragment?
String name = "android:switcher:" + container.getId() + ":" + itemId;
Fragment fragment = mFragmentManager.findFragmentByTag(name);
if(fragment != null){
mCurTransaction.detach(fragment);
}
}
mCurTransaction.commitAllowingStateLoss();
mCurTransaction = null;
}
然后,在我的“onCreate”上调用它:
myPagerAdapter.clear(mViewPager);
完成。所有 fragment 都被强制从 FragmentManager 中删除,导致“缓存”消失。
这不是最好的解决方案,但却是唯一有效的解决方案。
编辑您可以在此处找到孔文件: http://pastebin.com/07adWVrr
关于java - ViewPager 在返回时跳过 View ,留空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16601048/
我一直在修改VS 2010模板。到目前为止,我已经可以从模板创建vb.net类库项目。 但是,一件小事困扰着我。 在我的项目模板中,默认程序集名称与默认文件名相同。我将根 namespace 留为空白
我有一个 NSTextField,里面有一个 NSNumberFormatter。我见过一些文本字段,如果你将它们留空,它只会将之前的数字放回其中。我很好奇 Interface Builder 中是否
sql问题 我有这样的表格: id | Animal | country | gender | qty 1 | cow | USA | male | 6 2 | cow |
我正在尝试制作一个包含内容页面的网站。 我使用 go to chapter 1作为内容部分,当它点击时,它会处理 Chapter 1 这很好用,但有 1 个问题(总有一个问题)...我想让它看起来像维
我正在制作一个包含 4 个主视图的应用。我希望所有这些都保留在顶部的 LIST 菜单中(现在没问题)。 使用 Fragments,我可以在不执行其他 Activity 的情况下更改 View ,但是由
我正在定义一个 Form 类,它有一个文件字段并且不需要向它添加文件......但是每当我不提供文件时,表单都是无效的......所以有什么方法可以让我可以让用户选择是否添加文件吗??? 最佳答案 是
所以我尝试了之前帖子中关于这个问题的一些方法,但似乎没有一个对我有用(毫无疑问是用户错误)。 基本上,如果编辑文本留空,我的计算按钮就会崩溃。我需要发生的是,如果留空,则 edittext 的值为 0
我正在尝试提取 BufferedImage 的 10 px 方形部分并将它们添加到新的 BufferedImage 中,与 this drawImage tutorial 中显示的困惑示例非常相似。但
所以我正在使用 Postgres 和 Hibernate 4.2.2 以及这样的实体 @Entity(name = "Users") @Check(constraints = "email ~* '^
我正在尝试将列名为“邮政编码”、“2010 年人口”、“Land-Sq-Mi”和“每平方英里密度”的 CSV 文件导入我的测试表,该表名为 derp--这就是我在开头使用 drop 语句的原因,这样我
我正在尝试使用 usemin 插件来缩小并创建我的可分发文件。这是我的 Gruntfile.js: module.exports = function(grunt) { require('matc
在我的 HTML 中我有一个 ,并在 内我需要不同的文本行之间的垂直间距。我通过使用 实现了这一点具有对应于我想要的间距量的 CSS 类的元素。 例如,对于 5px 的间隙,我使用 与 heig
我有一个函数触发两个观察者 - keyboardWillShowNotification 和 KeyboardWillHideNotification,我基本上做的是在编辑时重置文本字段,模拟 的效果
这是一个非常奇怪的问题: Screenshoot 我确保图像大小相等,并且 Chrome 可以正确显示。为什么不是 IE 和 Firefox?对此有什么解决方案吗? 最佳答案 一个 li 的高度与另一
我是一名优秀的程序员,十分优秀!