问题标签 [android-viewpager2]

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 投票
5 回答
5889 浏览

android - 带有 Viewpager2 的关键 FragmentStateAdapter 的片段不再存在

我正在为我的项目使用 ViewPager2。我需要在带有 viewpager2 的片段中使用嵌套片段。在我尝试在片段(不是嵌套的片段)之间导航之前,它就像魅力一样。

第一次在片段之间导航后,应用程序崩溃并出现下面解释的错误。

包含嵌套片段 OnCreateView 方法的片段:

当我返回包含嵌套片段的片段时,它会崩溃

FragmentStatePagerAdapter 有解决方案,但 FragmentStateAdapter 没有。而且因为我不能覆盖 FragmentStateAdapter 中的方法,所以实现这个解决方案是不可能的。

谢谢您阅读此篇。任何帮助表示赞赏。

0 投票
1 回答
1443 浏览

android - ViewPager2 - 滑块过渡滑动太快

我已经从viewpager2的文档中实现了以下动画

现在,在我的活动中,我用处理程序包装了这个动画以自动滑动,但是速度非常快,我什至无法注意到它的滑动

我已经调整了处理程序的延迟,但这不是问题所在,因为它只是在它要更改到另一个页面时延迟,但是在此更改期间的转换非常快,我怎样才能减慢它的速度?

0 投票
0 回答
130 浏览

android - ViewPager - 仅预览 1 个右页,而不是最后一页

我将我的设置ViewPager为仅在右侧使用setPadding和显示 1 页的预览pageMargin

largeRightPadding足够大,可以显示我正确的预览页面。我当前的用户界面如下所示:

这是具有正确预览的第一个项目的外观: ViewPager 第一项

如果我滚动到最后一项,右边会有空白 ViewPager 最后一项

我想让它像这样,最后一项没有空白,而是显示左页的预览 预期的 ViewPager

提前致谢

0 投票
0 回答
606 浏览

android - 如何在横向使用 ViewPager2 进行轮播布局

我设法在 Android 应用程序中使用 ViewPager2 制作轮播布局。但是当我将应用程序切换到横向模式时,焦点中的较大图像会伸展并且看起来很奇怪。如何使用 viewpager2 在横向创建轮播布局。这就是我为肖像模式实现的方式。

0 投票
1 回答
1250 浏览

android - 带有 Viewpager2-Fragments 的实时数据

我想更新我的旧 android 项目,并希望使用 Google 推荐的 ViewModel 和 Livedata 方式。我使用 Viewpager2 和 Tablayout,其中包含 4 个片段。第一个片段有一个 ViewModel 并通过 Livedata 观察数据变化并更新它的 UI。

我的问题是:

  1. 当我滑动到 Viewpager 中的第二个片段时会发生什么?第一个片段不再可见,但它仍然存在。不可见时,fragment1 的生命周期会发生变化吗?如果没有,我怎么能停止更新它,因为它仍然会收到更新通知。

  2. 我可以对所有 4 个片段使用相同的 ViewModel,因为它们只是以另一种方式可视化 Livedata 中的数据更改。我该怎么做?

谢谢!

0 投票
3 回答
1756 浏览

java - java.lang.IllegalStateException:页面只能偏移正数

我在发布前报告中收到此错误,但它没有显示对我的 .java 文件的任何引用。任何人都可以对此有所了解吗?

我正在使用ViewPager2带有页面转换的 (1.0.0)。

我发现这个关于 ViewPager2的页面参考了一个类似的错误,即 ViewPager2 的错误。

可能相关:

我最近才开始收到此错误。我最近以下列方式更改了我的代码。我正在覆盖该getItemCount()方法,NUM_PAGES它返回的值取决于其他地方的可选选项。以前,当切换此选项时,我只会recreate()让 Activity 持有所有片段。相反,现在我打电话Objects.requireNonNull(recyclerViewAdapter).notifyDataSetChanged();,效果很好。我不确定这是否是添加/删除或显示/隐藏最右侧片段的正确方法,因为其他选项会在片段通常所在的位置留下一个空白页面。

编辑:我PageTransformerViewPager2- 只设置了 alpha 中删除了我的 - 并且错误目前已经消失。但我认为这可能是巧合。我没有在“野外”看到错误,只是间歇性地在发布前报告中看到。

编辑:我的片段中没有带有布局动画的 ViewGroups: 不为 ViewGroups 设置动画

0 投票
2 回答
622 浏览

android - ViewPager2如何更改子绘图顺序?

我正在尝试使用重叠项目(类似轮播的组件)来实现 ViewPager2。一切似乎都很好,但我的中心项目与下一个项目重叠。我希望我的中心项目位于任何相邻项目的前面。

见下图:

在此处输入图像描述

当您使用ViewPager1类时,我们可以覆盖getChildDrawingOrder

在此处查看示例解决方案:链接

但是 ViewPager2 不能被派生和扩展(因为 ViewPager2 类是最终的)。我该怎么办?

0 投票
2 回答
2543 浏览

android - ViewPager2 异常:java.lang.IllegalStateException:违反设计假设

我自己无法重现此问题,但我在运行小米 MI 9 时注意到此问题Android 10。这是我使用的ViewPager2RecyclerView版本:

这是堆栈跟踪:

我不确定这是从我的代码中触发的,因为堆栈跟踪不是很清楚。此外,根据 Google Issuetracker,这已在 viewpager2:1.0.0-beta03: https://issuetracker.google.com/issues/134246546解决,但在我的情况下并不完全如此。这是另一篇具有相同问题的帖子,但没有多少有用的答案:FragmentStateAdapter throws java.lang.IllegalStateException: Design假设 violation after configuration change。如果有人知道为什么会发生这种情况或如何解决它,那就太好了。

0 投票
1 回答
26 浏览

android - 填充数据不可见的片段?

我有一个活动,我正在使用 FragmentStateAdapter 类(ViewPager2)在两个片段之间滑动,类似于https://developer.android.com/training/animation/screen-slide-2

我当前的问题是,当我尝试访问活动中第二个片段的视图元素时:

我正在接收:

当我使用第一个片段(该滑块的)尝试此操作时,它可以工作。可能是因为它是第一个片段并且最初是可见的?

如果其中一个不可见/未创建,我必须访问两个片段的视图元素有哪些可能性?

我的用例类似于:我有两个片段。一个显示食物和其他饮料。片段应该是可滑动的,因此屏幕上只显示一个类别(类似:https ://developer.android.com/training/animation/anim_page_transformer_zoomout.mp4 )。通过一项服务,我在我的 MainActivity 中接收这两个类别的外部数据。所以我已经在 MainActivity 中拥有了我需要的所有数据。我想将此数据拆分为两个片段并显示它们,例如 Pizza : 4 $ 和另一个片段 Cocktail: 5 $

0 投票
5 回答
5831 浏览

java - viewpager2 中的无限滚动

我们如何在 ViewPager2 中实现无限滚动

因为OnPageChangeListener()在这个寻呼机中没有。但是每当我们更改页面时,都会有setPageTransformer()监听器获取回调。

所以viewpager2问题的任何解决方案

注意:我正在为 viewpager2 使用 recyclerview 适配器