仅当片段在ViewPager中可见时才显示请求权限对话框

时间:2018-03-21 16:46:30

标签: android android-fragments android-viewpager android-permissions

我有一个带有3个标签的ViewPager,在每个标签中我都可以有2-3个或4个子标签。

打开活动时,会加载所有选项卡(所有片段)。一些片段正在询问一些权限(对于不同的片段可以是相同的权限)。

我的主要问题是打开此活动时将显示所有请求权限弹出窗口。如果可见的第一个片段不需要任何权限,则为事件。 有没有办法只在片段可见时询问权限?或者唯一的解决方案是跟踪Tab和ViewPager的点击OnPageChangeListener?

2 个答案:

答案 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()
    }
}