问题标签 [fragmentpageradapter]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
525 浏览

android - Android:actionbarsherlock 4.2 选项菜单和谷歌地图 v2 滞后

设置

我遇到了一个非常奇怪的滞后错误。使用 ABS 4.2,支持库 v4 修订版 11,以及新的 SupportMapFragment 和嵌套片段。此错误出现在 Android 4.2 上的 nexus 4 和 2.3.6 上的 nexus 1 上。

我有这些片段:

#1“MainContainer”,带有一个包含片段页面适配器的视图页面。

#2 此片段页面适配器中的“SupportMapFragment”。我扩展了 SupportMapFragment 但同样的错误适用于它的默认实现。

#3 一个额外的片段(只是根据偏好调整设置,所以没什么特别的)

做过:

  1. 让片段#2 运行并单击选项菜单项(在溢出菜单中),它将片段事务运行到片段#3。这会将旧片段 MainContainer 添加到 backstack。

  2. 单击后退按钮,弹出 #3 并将 #1 (MainContainer) 和 #2 (SupportMapFragment) 再次显示。

预期的:

平滑运行的地图片段。

发生:

地图视图非常慢,几乎没有功能。我在整个应用程序中看不到任何其他滞后。

奇怪的部分:

尽管我在整个生命周期更改中执行了任何片段事务,但延迟仍然如此,除非重新创建活动或片段被破坏:ed(MainContainer 始终在片段管理器中)。但是,如果我按下溢出按钮以查看我在步骤 1 中按下的实际按钮(仅显示溢出菜单中的项目),地图会突然运行顺畅。

从逻辑上讲,这表明仅通过显示更改的溢出菜单中的项目来更改某些内容。由于所有这些组件中涉及的代码太多,除了在另一个片段(getChildFragmentManager() )中使用 SupportMapFragment 之外,我真的找不到任何不寻常的东西,如果你问什么片段可能会更好代码可能很有趣,我会用它更新。

请帮忙,因为我要疯了......

0 投票
1 回答
2240 浏览

android - 如何将片段作为视图添加到 ViewPager?

我正在使用 viewPager 并想向其中添加片段:

我的寻呼机适配器:

将 MyFragment 添加到 ViewPager 的正确方法是什么?我必须将它添加为视图,所以我使用 newInstance() 方法,但给了我一个 nullPointerException。

谢谢!

0 投票
2 回答
3277 浏览

android - 在 onPageSelected() 中访问时片段成员变量为空

我正在使用 FragmentPagerAdapter 和 FragmentActivity 来创建可滑动的片段。

我在那个 pagerAdapter 中的第一个片段看起来像这样。

这里的问题是当刷出到 5-6 个片段并刷回第一个片段时,我得到了 NullPointerException。

当我尝试调试时,我发现

mMyView 为空?= 真

为什么这样?

请帮我。

这是我的 Fragment 包含 FragmentPagerAdapter,

这是我的实现 MyFragmentPagerAdapter,

0 投票
1 回答
604 浏览

android - 无法更改寻呼机适配器 + FragmentPagerAdapter 中事件的 TextView 文本

我在 FragmentPagerAdapter 中有三个页面,我尝试从不同的片段(不在 pageradapter 中)捕获 longClick 事件,并通过接口使用此事件来更改 textview 中的文本。当我将片段保存在 MainActivity 中的数组列表中时,它在某种程度上起作用,但随后我尝试删除数组列表并从 pageradapter 中获取现有片段以解决片段从我的数组列表中消失的问题,现在是 textview根本不会改变(它会改变之前的部分时间)。

以下是相关部分(根据 Tushar 的要求,我只带了最相关的部分,如果需要其他任何内容来理解代码,请提及,我会添加它):

希望这对您有所帮助,因为我的 TextView 迫切需要一些文本。

编辑:这是 TextView 获取文本的位置:

0 投票
2 回答
3314 浏览

android - Viewpager 和 Sherlock 片段。如何在 FragmentActivity 的片段内部做一些事情?

我有一个父SherlockFragmentActivity类,其中包含ViewPager,里面有 4 个片段。
其中之一从SherlockListFragment扩展,我想通过单击它的选项卡将其滚动到顶部。

MainActivity类:

TabAdapter类:

onTabReselected被调用,然后用户按下当前选项卡,所以我尝试进行EventListFragment滚动:

EventListFragment类:

它适用于应用程序启动,但屏幕旋转后scrollToTop - getSherlockActivity()返回null
如果删除此条件检查,则会出现异常:

java.lang.IllegalStateException:尚未在 android.support.v4.app.ListFragment.getListView(ListFragment.java:222) 的 android.support.v4.app.ListFragment.ensureList(ListFragment.java:328) 创建内容视图com.project.fragment.EventListFragment.scrollToTop(EventListFragment.java:337) 在 com.project.MainActivity$TabAdapter.onTabReselected(MainActivity.java:411) 在 com.actionbarsherlock.internal.app.ActionBarWrapper$TabWrapper.onTabReselected(ActionBarWrapper.爪哇:327)

我还没有完全了解 ViewPager 及其 FragmentPagerAdapter 的工作原理。所以找不到问题,就出现了。

0 投票
2 回答
1408 浏览

android - 使用 ViewPager/Fragments/ViewPagerExtensions 强制关闭方向更改

我遇到了一些我似乎无法解决的问题(我以前没有以这种方式处理过片段)

我有一个主要的 FragmentActivity 如下:

XML 如下(带有 Viewpager 和 ScrollingTabsView:

然后在 MyTabsAdapter 我有这个:

并且 FirstFragment/SecondFragment 有自己的基本布局并且几乎相同,这里是 Fragment

这里的一切都完全按照我的意愿工作。选项卡正常工作,ViewPager 页面正常,等等。

问题是,当我改变方向时,我得到了这个痕迹并强制关闭,我不知道为什么。

所以我需要帮助的是弄清楚为什么我在方向改变时会出现这个错误。我做了一些研究,似乎没有找到任何具有类似设置的人。

任何帮助将不胜感激,如果需要,我很乐意提供更多信息。

0 投票
1 回答
6797 浏览

android - 如何获取 Android FragmentPagerAdapter 的片段引用

我正在使用带有 FragmentPagerAdapter 的 ViewPager 以允许在 2 个片段之间滑动。我没有使用 FragmentStatePagerAdapter,因为它在它们之间滑动时会破坏并重新创建新的片段实例,并且我不希望其中一个片段中的操作执行多次)。我需要一种方法来获取对 2 个创建的片段的引用以传递给 FragmentPagerAdapter,但以下代码会产生错误(见下文):

这会产生以下错误(或类似错误):

有人可以帮我吗?

编辑
我也尝试了以下方法,但它恰好将每个片段实例化两次(可以理解),这是我不想要的。除此之外,它适用于以下代码:

0 投票
1 回答
1035 浏览

android - 控制android片段创建顺序

所以,我在 FragmentActivity 中有 3 个片段。我有一个带有一些容器等的 xml 布局文件,所以我setContentView(R.layout.my_activity)然后以编程方式添加 3 个片段。其中 2 个片段与 FragmentPagerAdapter 一起使用,以便我可以在它们之间滑动。

现在,我需要在另一个片段之前创建2 个可滑动片段(例如,片段 1 和 2 的 onCreateView 方法应该在片段 3 的 onCreateView 方法之前调用。但是,始终首先创建片段 3。编码:

我还尝试使用上面的代码替换initViewPager方法:

但这会在启动时产生错误并崩溃,类似于以下内容:

谁能告诉我如何完成我正在尝试做的事情,或者建议我可以尝试的事情?我还应该提到,重构使得片段依赖动作从它们的构造函数中执行不是一种选择。

0 投票
0 回答
424 浏览

android - 更新viewpager android中的部分片段

我有这个问题,

在我的应用程序中有一个带有 3 页的 viewpager,在中间页面(位置 1)我设置了 getPageWidth 0.80f 然后当我向右滚动时,页面 1 由 fragment1 + 0.20 组成,从第 0 页到第 1 页,在这个页面中,fragment2 在 fragment1 之后刷新。

我采用了 notifyDataSetChanged()、requestLayout() 并看到了这个答案:

ViewPager + PagerAdapter 在前两项后显示空白页

但我没有解决我的问题。

问题是:我如何在更新page1的同时强制更新viewpager中的部分page2?

谢谢大家

0 投票
1 回答
1999 浏览

android - ViewPager 显示错误的片段

我试图找到解决我在网络上到处搜索问题的方法,但我还没有解决。无论如何,这是我的问题。基本上,当我启动我的 TestWeekActivity(包含 ViewPager)时,它会显示第一个片段/页面的第二个片段/页面,当我滑动到第二个片段/页面时,我会看到第三个片段...换句话说,它总是显示下一个或上一个片段/页面取决于滑动方向(向左或向右)。

将日志放在任何地方我知道每次滑动 FragmentPagerAdapter.getItem(int) 都会被调用两次(我读到这种行为允许缓存近页)。但是我不明白的是,为什么在调用 getItem 方法时,也会调用相对片段方法 onStart ,所以当我从第一页滑动到第二页时,由于第二次调用 getItem 方法,我看到了第三个片段。我希望已经足够清楚了。

这是我的代码:TestWeekActivity

日片段

提前谢谢大家!

PS:我是新手,所以不要杀我。;-) PPS:抱歉英语不好。