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

android - ViewPager2 默认位置

我正在使用 ViewPager2 创建幻灯片。例如,幻灯片有 3 个项目,我想在活动打开时显示第二个项目。我使用setCurrentItem(int item, boolean smoothScroll)方法,但它不起作用,没有任何反应。我怎样才能实现它?

0 投票
2 回答
2121 浏览

android - 如何防止在 ViewPager2 中滚动时单击?

如何防止在ViewPager2中滚动时调用“onClick” ?
请注意我询问 ViewPager2。
当我滚动查看寻呼机时,单击了一个项目。

activity_main.xml

页面视图适配器

在这里您可以观看动作视频: https ://vimeo.com/340232497

0 投票
0 回答
1802 浏览

android - ViewPager2 看到下一页的一部分并在屏幕第一页和最后一页居中

我有一个配置了各种扩展功能的 RecyclerView 以居中并查看下一项:

问题是这种方法的 ListAdapter 动画不好。然后我尝试移动到 ViewPager2 但我无法获得这种行为(请参阅下一个屏幕并保持项目居中)。

0 投票
1 回答
2558 浏览

android - 如果滚动位置为 0,ViewPager2 中的片段不响应点击

我很高兴 Google 发布了基于 RecyclerView 构建的ViewPager2,以解决旧 ViewPager 存在的许多问题。

我很快将旧的 ViewPager 代码替换为 ViewPager2:

  1. 在 xml 中用 ViewPager2 替换 ViewPager

  2. 替换FragmentPagerAdapter(FragmentManager)FragmentStateAdapter(Fragment)

  3. ViewPager 设置如下:

    /li>

没有进行其他更改。

问题

进行了上述更改后,我意识到了一个问题——

现在我的 ViewPager 是一个普通的水平分页器,我的每个片段fragmentAdapter都有一个垂直的RecyclerView.

我观察到,当 RecyclerView 的滚动位置为 0 时,我在该 RecyclerView 中的项目无法接收任何单击或长单击事件,但可以滚动。一旦滚动,它可以再次获得点击。*

ViewPager2也知道这RecyclerView与嵌套的 RecyclerView 有关吗?

0 投票
1 回答
2178 浏览

android - ViewPager2 setCurrentItem 方法抛出错误

我正在使用ViewPager2,并且我有一个按钮,可以将其当前页面更改为第二页,如下所示:

它一直有效,直到手动滑动页面,然后抛出此错误:

这只发生在这些点击上,当手动滑动碎片时一切正常。错误跟踪的所有位置都没有指向我的代码:(

这是我的 ViewPager 适配器:

这是Activity的全部相关代码:

0 投票
4 回答
6397 浏览

android - 如何在 ViewPager2 中禁用特定方向的滑动

我想禁用从右向左滑动ViewPager2。我的导航抽屉中基本上有一个带有 2 页的 viewpager2 元素。我希望我的第二页仅在我单击第一页中的某个元素时显示(从第一页从右向左滑动不应打开第二页),而当我在第二页中时,viewpager2 滑动(向左向右滑动)应该像在 viewpager 中那样滑动。

我尝试过扩展ViewPager2类并覆盖触摸事件,但不幸的是它ViewPager2是最终类,所以我无法扩展它。

其次,我尝试使用setUserInputEnabledfalse 方法,但这完全禁用了所有滑动(我只想禁用从右到左滑动)。如果我能找到一些侦听器在滑动之前检查当前页面并禁用滑动,否则它可能会起作用。

设置 ViewPager2 的代码

0 投票
1 回答
2631 浏览

android - 如何实现获取和返回 LifeCycle 的方法

我对生命周期的FragmentStateAdapter要求有疑问,请帮助我如何在下面的代码行中设置和传递生命周期。

这是myViewPagerAdapter方法

经过一番挖掘,我得到了这个,LifeCycle 是@NonNull

帮我完成这个方法返回当前的LifeCycle

0 投票
6 回答
4962 浏览

android - 移除 ViewPager2 Overscroll 动画

找不到删除 ViewPager2 过度滚动阴影动画的方法。我知道在 ViewPager 上,您可以直接将 overscrollMode 属性设置为 never,但是,它在 ViewPager2 上不起作用

已经尝试了以下

0 投票
5 回答
4487 浏览

android - 如何修复 ViewPager2 中的“违反设计假设”错误?

我正在使用 ViewPager2、Kotlin 和 AndroidX。当适配器不在索引 0 并且我更改适配器列表并将当前项目设置为索引 0 时,将引发异常。

在 ViewPager2 的第 537 行有一个 if 导致异常:

这就是我更新适配器列表的方式:

仅当smoothScroll设置为true

我错过了什么?

编辑: 我正在androidx.viewpager2.widget.ViewPager2使用com.google.android.material:material:1.1.0-alpha08

0 投票
0 回答
258 浏览

android - ViewPager2 - PagerTitleStrip 有替代品吗?

是否可以创建类似于 ViewPager 中存在的 PagerTitleStrip 的东西?我的意图是只显示添加的片段的标题,而没有 tabLayout。