问题标签 [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.
android - ViewPager2 fragments overlap tabbed items
I've the below code for Viewpager2
, I've 2 main issues:
- The fragment content is covering the tabs headers. How can I adjust it so that the content starts below the lines under the tab names.
- The tabs items are not responding to
onTabSelectedListener
,
activity_app.xml
AppActivity
AppViewPagerAdapter
fragment_blank.xml
TabLayoutMediator
Screen capture of the result
android - 带有片段和 Jetpack 导航的 Viewpager2:恢复片段而不是重新创建它们
我有一个Viewpager2
内部Fragment
(让我们称之为HomeFragment
)。那Viewpager
本身也包含Fragments
. 当我离开视图时,HomeFragment
它的视图将被破坏,当我返回时,视图将被重新创建。现在我Viewpager2
在HomeFragment
during中设置了适配器onViewCreated()
。因此,当我导航回 时,将重新创建适配器HomeFragment
,这也会重新创建所有Fragments
,Viewpager2
并且当前项目重置为 0。如果我尝试重新使用我在第一次创建时实例化的适配器,我HomeFragment
会得到一个异常,因为这个检查里面FragmentStateAdapter
:
有人知道我如何在返回时防止重新创建所有内容吗?否则这是一个相当大的性能开销并阻碍了我的用户体验。
androidx - Android - 导入 ViewPager2 库时程序类型已经存在 com.transition.R
Gradle
正在抛出程序类型已经存在:androidx.transition.R"
导入后androidx.viewpager2:viewpager2:1.0.0-beta02
预期结果: Gradle
应该编译没有错误
android - viewpager2 与 SwipeRefreshLayout 的交互
我有 4 个片段的 viewpager2。其中 3 个具有 SwipeRefreshLayout 以刷新特定片段中的异步任务数据。
当使用 SwipeRefreshLayout 和 viewpager2 时,手势在某种程度上是冲突的。IE。向下滑动刷新会使屏幕如此敏感,向左或向右稍微移动也会使页面屏幕发生变化,刷新图标冻结或进程未完成。
我的目标是使手势独立,例如,当我开始向下滑动 SwipeRefreshLayout 时,vp2 被禁用,因此它不会干扰 SRL。
使用带有 SwipeRefreshLayout 的标准 viewpager 时没有发生这种情况,手势不冲突,但我需要在 VP2 中使用“setUserInputEnabled”。知道如何减轻这种行为,我应该在 SwipeRefreshLayout 级别还是在 vipager2 代码中减轻它?
android - FragmentStateAdapter 抛出 java.lang.IllegalStateException:配置更改后违反设计假设
FragmentStateAdapter 抛出
java.lang.IllegalStateException:违反设计假设,
当设备旋转时。我该如何解决这个问题?
例外
android - Viewpager2 FragmentStateAdapter 中的“预期适配器在恢复状态时是‘新鲜的’”
当我尝试重新使用 Viewpager2 FragmentStateAdapter 时,我收到此错误。我已经尝试将适配器设置为空,onDestroyView
但这没有帮助。
这是因为我使用的是 Jetpack Navigation 库。当我离开片段时,视图被破坏。当我向后导航时,它会重新创建,我需要再次设置适配器。当我这样做时,适配器内部已经有片段,这会在restoreState()
.
android - 查看寻呼机 2:深度页面转换使寻呼机向上滑动时禁用片段点击事件
我将 viewpager2 与 fragmentStateAdapter 一起使用。此外,将页面转换器设置为 DepthPageTransformation(转换按我想要的方式正常工作)
但是当我向上滑动页面时,该片段上的点击事件在双击时起作用(事件在点击两次后起作用)
如果我从 viewPager 中删除 pageTransformation,那么它可以正常工作。因此,无法理解为什么转换会导致点击事件问题。
我希望该按钮单击事件应该在页面向上滑动时一键工作。
android - android MapView + ViewPager2 + DataBinding 问题
我最近遇到了一个非常奇怪的问题。我的布局中有一个地图视图,它使用数据绑定进行了膨胀。在我将 ViewPager2 添加到我的布局后,我遇到了这个问题:
但只有当您第一次打开第一个片段并转到下一个片段然后按回时才会发生这种情况。
- 如果我从我的布局中删除 mapview 一切正常。
- 如果我从我的布局中删除 viewpager2 一切正常。
- 如果我删除数据绑定一切正常。
它似乎与视图状态有关,但我能做些什么来解决这个问题吗?
这是一个示例片段代码:
样本布局:
要重现,我必须打开另一个片段,然后按回
**编辑:** 似乎在 mapview 前面移动 viewpager 也有帮助,因此仍然可以使用数据绑定。
android - 以编程方式滑动时更改 ViewPager2 滚动速度
我知道有办法改变ViewPager
程序幻灯片的动画持续时间(这里)。
但它不工作ViewPager2
我试过这个:
IDE 在“mScroller”上给我警告:
无法解析字段“mScroller”
如果我们运行此代码,那将不起作用,并在下面给我们错误:
那么我们如何才能实现这个功能呢?
android - ViewPager2:setOnTouchListener() 不调用
我正在将我的 ViewPager 迁移到新的 ViewPager2。不幸的是,对于这个新类,setOnTouchListener
从未调用过。
你知道我该如何解决吗?
非常感谢你们!