Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在使用ViewPager片段时,未调用onPause()、onStop()、setUserVisibleHint()和onHiddenChange()_Android_Android Fragments_Android Viewpager_Android Tabs - Fatal编程技术网

Android 在使用ViewPager片段时,未调用onPause()、onStop()、setUserVisibleHint()和onHiddenChange()

Android 在使用ViewPager片段时,未调用onPause()、onStop()、setUserVisibleHint()和onHiddenChange(),android,android-fragments,android-viewpager,android-tabs,Android,Android Fragments,Android Viewpager,Android Tabs,我有一个ViewPager,其中包含2个选项卡(2个单独的片段) 我的第二个选项卡由另一个ViewPager中的另外6个子选项卡(每个单独的片段)组成 现在,当我在6个子选项卡之间切换时,会调用setUserVisibleHint()方法 但是,当我出现在6个子选项卡(即片段)中的任何一个子选项卡上时,我尝试在2个父选项卡之间切换。子选项卡片段的onPause()、onStop()、setUserVisibleHint()和onHiddenChange()等方法都不会被调用 所以,你们能帮我知道

我有一个ViewPager,其中包含2个选项卡(2个单独的片段)

我的第二个选项卡由另一个ViewPager中的另外6个子选项卡(每个单独的片段)组成

现在,当我在6个子选项卡之间切换时,会调用setUserVisibleHint()方法

但是,当我出现在6个子选项卡(即片段)中的任何一个子选项卡上时,我尝试在2个父选项卡之间切换。子选项卡片段的onPause()、onStop()、setUserVisibleHint()和onHiddenChange()等方法都不会被调用

所以,你们能帮我知道当我在两个父选项卡之间切换时,子片段的哪个方法会被调用吗


如果没有方法会被调用子片段,那么我如何实现或知道在父选项卡和子片段中调用方法之间存在切换?

在这种情况下,您不应该依赖片段生命周期。它是由适配器控制的,如果这些回调中的任何一个被调用,它都不能保证您有任何东西


改用
onPageChangeListener
。例如,您可以通过
onResume
中的
addOnPageChangeListener
ViewPager
对象上设置它,并在
onPause
中调用
removeOnPageChangeListener
。它有一个方法
onPageChanged
,每次您切换页面时都会调用该方法。

谢谢您的回答,但我没有得到一件事,您要求我在我实现ViewPager的活动中设置这些提到的侦听器?或者在哪里?我有单独的FragmentClass、单独的Adapter类和单独的Activity类。将侦听器设置在您有
ViewPager
的位置,我相信您的Activity中有它。如果需要从侦听器访问片段,请将其用作参考: