我有一个带有3个标签的ViewPager,在每个标签中我都可以有2-3个或4个子标签。
打开活动时,会加载所有选项卡(所有片段)。一些片段正在询问一些权限(对于不同的片段可以是相同的权限)。
我的主要问题是打开此活动时将显示所有请求权限弹出窗口。如果可见的第一个片段不需要任何权限,则为事件。 有没有办法只在片段可见时询问权限?或者唯一的解决方案是跟踪Tab和ViewPager的点击OnPageChangeListener?
答案 0 :(得分:0)
覆盖所有片段中的方法(除了第一个片段)...
@Override
setUserVisibilityHint(...) {
super..
if(getActivity()!=null) {
requestPermissions();
}
}
第一次活动开始它不会请求权限,因为 getActivity()
对于所有其他片段来说是null
...来自第2次时间......它将要求许可..
注意: - 只要 在您的ViewPager
页面中滑动,它就会请求权限。
答案 1 :(得分:0)
有一个参数可见。用它来确定可见性。
override fun setUserVisibleHint(visible: Boolean) {
super.setUserVisibleHint(visible)
if (visible && activity != null) {
checkPermissions()
}
}