问题标签 [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 投票
1 回答
310 浏览

android - 如何在默认 Android FragmentActivity 示例的引用上动态添加片段?

像这样引用 FragmentActivity 的默认示例:

和这样的布局xml:

它非常清晰且易于使用。getItem()返回一个片段..getCount返回片段的大小......但是actullay如何在正在运行的应用程序中动态添加片段?喜欢setOnClickListener(),添加新的或删除片段???

我想做这个app的效果,点击item可以添加片段: https ://play.google.com/store/apps/details?id=fm.clean&hl=zh_CN

我在谷歌上进行了大量搜索,但没有任何帮助..

FragmentTransaction只是为了视图更新所以不适合这种情况吗?

并且需要在SectionsPagerAdapter???

我看到某些情况下片段有ID,但这种情况下没有片段ID ???

这让我很困惑..

0 投票
1 回答
639 浏览

android - 共享 ViewPager 文本,显示以前的 Fragment 文本

我想通过 FragmentPagerAdapter 共享在 ViewPager 上显示的 TextView 内容,但是当我共享内容时,它会共享以前关注的 TextView 内容。

当我单击“共享”按钮时,它会共享我来自当前片段的最后一个片段的内容。

我的代码

分享.java

activity_main.xml

screen_slide.xml

ShowFragment1.java

0 投票
1 回答
359 浏览

android - FragmentPagerAdapter 没有改变片段内容

FragmentPagerAdapter 按项目向导

公共类 SectionsPagerAdapter 扩展 FragmentPagerAdapter {

何时更改数据

查看页面计数已更改,但页面(片段)内容未更改。

例如,

选择 A 部分,3 页:“A1”、“A2”、“A3”

然后选择B部分,5页:“A1”、“A2”、“A3”、“B4”、“B5” (不是“B1”、“B2”、“B3”、“B4”、“B5”)

如何将页面内容 A 更改为 B?

0 投票
0 回答
458 浏览

android - FragmentPagerAdapter 返回一个空指针异常

我正在尝试将选项卡添加到我的 android 应用程序中的操作栏。使用 FragmentPagerAdapter 似乎是个好主意,但是当我尝试将适配器设置为 ViewPager 对象时,它返回一个空指针异常。无法解决问题,请帮助...这是部分代码段:

公共类 Aps_MainActivity 扩展 FragmentActivity 实现 ActionBar.TabListener {

0 投票
1 回答
4563 浏览

android - 以新顺序使用片段更新 viewpager

我有一个 ViewPager 设置,它从服务器传递的数据中为其页面(视图)绘制数据。有时,服务器会发送新数据来重新排序视图(有时会添加新视图),我需要在用户当前查看特定片段时在我的 android 设备上无缝地实现这一点。

我将它设置为在从服务器下拉新数据时调用 notifyDataSetChanged() ,但这似乎将幻灯片的缓存版本保留在当前查看的幻灯片的左侧和右侧,这可能会随着重新排序而改变。我在这里查看了这个主题:ViewPager PagerAdapter not update the View并实现了第一个工作正常的解决方案,除了它重新加载当前正在查看的幻灯片,这对我的目的不起作用。我对第二个答案中同一页面上提出的 setTag() 方法进行了浅显的研究,该方法可用于更新幻灯片上的信息,但对我重新排序没有帮助。

有什么方法可以重新排序幕后的所有幻灯片,而不会导致当前查看的幻灯片中出现任何打嗝?

TIA

编辑:添加代码并要求进一步澄清

这是我的适配器类。

这是我在从服务器下载新的有效负载时使用的内容:

0 投票
1 回答
1497 浏览

android - 扩展 FragmentPagerAdapter 存在缺少超级构造函数的问题

我今天早些时候发布了关于在我的 PagerAdapter 中更新幻灯片的信息,并被定向到此处:Android ViewPager:以编程方式移动任何页面以结束?

我试图重新设计我的 FragmentPagerAdapter 扩展类以对该页面上的类进行建模,但我的构造函数遇到了问题。有关我遇到的错误,请参阅下面代码中的注释。我不确定为什么它会在上面的页面上起作用,但不适用于我。

我对 android/java 仍然很熟悉,所以我不完全确定这意味着什么。我撰写了这个新问题,因为我不想一直捎带我之前的问题。

TIA

编辑:我还尝试使用 ArrayList<> 来完全匹配该示例,并得到了同样的错误。

0 投票
2 回答
1857 浏览

android - 更新 FragmentStatePagerAdapter 中的视图/幻灯片(片段) - 简单的重新排序

我尝试使用扩展的 FragmentStatePagerAdapter 和扩展的 FragmentPagerAdapter 来实现我正在尝试的东西,但似乎都不起作用。我正在从我的服务器发送一个 JSON 对象以填充 android 客户端上的对象模型。在第一次加载时,一切正常,我可以从头到尾很好地浏览页面。这是我的对象模型:

ContestEntriesModel.java

如您所见,有一个 ContestEntryModel 数组。这些模型中的每一个都如下所示:

ContestEntryModel.java

如上所述,当第一个数据有效负载从服务器下来时,我在 ContestEntryModel[] 数组中的每个项目中填充一个片段,其中包含来自该模型的数据(包括来自互联网资源 (ImageUrl) 的图像),并且效果很好. 我可以滑动直到我的手指流血,世界上一切都很好。

我现在正尝试从服务器向下发送另一个有效负载,其中数组中的项目以不同的顺序(我最终也会添加新项目,但一次一步)。我在 StackOverflow 上搜索了一个解决方案,昨天发布了一个问题,让我接近了我需要的地方(感谢 Reinier),但我仍然在努力让我的所有片段重新排序并拥有适配器完全刷新新订单。适配器似乎缓存了一些幻灯片(与我当前正在查看的幻灯片相邻的那些)并且它们不会“刷新”,直到我将一些图像滑过它们然后返回。昨天的麻烦是当新数据从我正在工作的服务器上下来时,当前查看的幻灯片无法“刷新”......有点。让' s 说我的数组中有 7 个项目,我在第一次加载时滑动到幻灯片 #3(索引 2)。然后我从服务器推送新数据,该服务器只是对数组进行反向排序。当前查看的幻灯片(幻灯片#3)然后应该移动到索引位置 4,我应该只能向右滑动 2 次(索引位置 5 和 6)。相反,它正在记住该幻灯片的当前索引位置(索引 2)并将其保留在那里。正如我上面所说,幻灯片 #2(索引 1)和幻灯片 #4(索引 3)也正在维护中。我的预期行为是这些幻灯片应该围绕幻灯片#3(索引 2)反转位置。当前查看的幻灯片(幻灯片#3)然后应该移动到索引位置 4,我应该只能向右滑动 2 次(索引位置 5 和 6)。相反,它正在记住该幻灯片的当前索引位置(索引 2)并将其保留在那里。正如我上面所说,幻灯片 #2(索引 1)和幻灯片 #4(索引 3)也正在维护中。我的预期行为是这些幻灯片应该围绕幻灯片#3(索引 2)反转位置。当前查看的幻灯片(幻灯片#3)然后应该移动到索引位置 4,我应该只能向右滑动 2 次(索引位置 5 和 6)。相反,它正在记住该幻灯片的当前索引位置(索引 2)并将其保留在那里。正如我上面所说,幻灯片 #2(索引 1)和幻灯片 #4(索引 3)也正在维护中。我的预期行为是这些幻灯片应该围绕幻灯片#3(索引 2)反转位置。

这是我的 PagerAdapter 的实现(这是 FragmentStatePagerAdapter 而不是 FragmentPagerAdapter 的版本:

ScreenSlidePagerAdapter:

目前我正在为适配器的活动设置一个静态属性(我在其他一些“外部”类中使用它),如下所示:

主要活动:

当一个新的数据加载从服务器上下来时,我只是将我的静态属性(条目)设置为新版本。我还尝试访问 PagerAdapter (条目)中的公共属性以直接修改它,但由于某种原因无法访问(即使类和属性都具有公共访问器)。我认为这就是问题所在,因为这是我需要修改的那个实例,但老实说,我的大脑在这一点上被炒了,我只是不确定。这是我用于更新的代码:

更新代码:

因此,使用它,它确实让我保持在当前幻灯片上(这是我需要的),但该幻灯片没有如上所述正确重新定位,其他相邻幻灯片也没有“刷新”。同样,假设我在幻灯片 #3 上,如果我在旧幻灯片 #2 仍然存在时向左滑动。如果我向左滑动两次,幻灯片 #1 会更新为“新”幻灯片(第一次加载的幻灯片 #7)。如果我再向右滑动一次,幻灯片#2 仍然存在(应该是幻灯片#6)。如果我然后再次向右滑动,我需要维护的“原始”幻灯片现在被替换为幻灯片 #5(同样,该数字来自原始负载)。如果我一直向右滑动到“新”幻灯片#5,我会再次看到原始幻灯片。那是它需要在新数据加载的位置,在那个位置。

我真诚地为这堵文字墙道歉,但我想如果我能提供尽可能多的代码,这会更有意义。我已经阅读了几种不同的方法来解决这个问题,但我无法解决任何特别适合我需求的方法。

任何建议/代码帮助将不胜感激。

0 投票
0 回答
1274 浏览

android - 无法在 onActivityResult(...) 中将 FragmentAdapter 重置为 ViewPager

我在该 ViewPager 中使用 FragmentActivity,在 onCreate(...) 方法中我将 FragmentPagerAdapter 适配器设置为 ViewPager 它在这里工作正常但是当我尝试在 onActivityResult(...) 方法中将新的 FragmentPagerAdapter 重置为 ViewPager 只有构造函数适配器的调用和公共 Fragment getItem(int position); 没有被调用,因为我得到片段为空。因此,当我在 onActivityResult(...) 中重置适配器后尝试获取当前可见片段时,我得到了 null。

这就是我在 onCreate 中所做的:

这就是我在 onActivityResult 中所做的:

这是我的 FragmentAdapter 代码;

}

0 投票
4 回答
9324 浏览

android - FragmentPagerAdapter getItem 位置错误

我遇到了 FramentPageAdapter 的奇怪问题

MainActivity.java

当我尝试在 3 个选项卡之间切换时,公共片段 getItem(int position) 返回错误的位置。当我创建只有 2 个选项卡的应用程序时,一切正常。添加超过 2 个,产生奇怪的问题。从 0 位置切换到 1 位置 - 工作正常,从 1 切换到 0 - 工作正常,从 1 位置切换到 2 位置 - 工作正常,但是,当我尝试从 2 位置返回到 1 位置时,公共片段 getItem(int position) - int 位置返回“0”而不是“1”。有人帮我吗?

0 投票
2 回答
7415 浏览

android - 你如何获得当前片段的 ID?

我创建了一个带有 8 个片段的 ViewPager,这些片段使用相同的 xml 布局。但是,我希望不同的片段使用不同的内容。我需要获取任何片段的 ID,以便将特定内容加载到该片段上。

我试过了

在 FragmentPagerAdapter 的 getItem(int position) 方法中。

然后,我得到了 Fragment 类中片段的位置。当我这样做时,当我打印出每个片段的位置时,我从 0 变为 7,但随后它们都增加到 7,因此它们都变成了同一个片段。

有没有其他方法可以获取每个片段的 ID?