android - ViewPager 中的片段在 isVisible 不是时显示为 true
问题描述
当我的活动显示包含 ViewPager 的片段时,我试图覆盖后退按钮。基本上,如果在屏幕上 viewPager 片段时选择了后退按钮,我想在 viewPager 片段中调用这个函数:
fun onBackPressed() {
if (viewPager.currentItem > 0) {
previousPage()
} else {
activity?.onBackPressed()
}
}
目前,在我的活动中,我覆盖onBackPressed
:
override fun onBackPressed() {
val fragments = supportFragmentManager.fragments
for (fragment in fragments) {
if (fragment.isVisible && fragment is IRegistrationBackPressed) {
fragment.registrationBackPressed()
return
}
}
super.onBackPressed()
}
我的 viewPager 的第一页没有实现 IRegistrationBackPressed,因此如果您在第一页,它应该只调用super.onBackPressed
. viewPager 中的任何其他页面都实现了 IRegistrationBackPressed,它只调用了onBackPressed
我上面显示的 viewPager 片段的函数。
我必须这样做,因为无论出于何种原因,viewPager 片段都不会出现在活动片段中......但是我的问题是,当我在第一页上时,第二页不仅在片段堆栈中,但它的isVisible
布尔值是真的。
对我来说,这零意义......如果片段不在视图中,为什么它的可见性布尔值显示为真?
解决方案
推荐阅读
- jenkins - 创建空文件时未将 Ebextensions 部署到 AWS Beanstalk
- c++ - 对 C++ 中的复制构造函数和对象感到困惑
- javascript - 在浏览器上,无法在最新的三星 s10 和 s20 手机中使用 navigator.getusermedia js 访问后置摄像头(注:最新手机中的 3 个后置摄像头)
- c - 为什么将 SIGTTOU 信号传递给进程?
- java - ES错误:请求处理失败;[172.17.1.128:9300][索引:数据/读取/搜索[相位/dfs]]];
- java - 我的通知频道未创建
- postal-code - 操作系统数据中心 - 网格参考中的邮政编码
- javascript - 为什么我的 React TS 组件库中的某些组件会抛出 Minified React 错误 #321
- r - 我是否需要减少 R 中的 for 循环以及如何减少?
- javascript - 如何在反应(钩子)中更新值而不是重新渲染完整的应用程序?