在我的android应用程序中,我使用带有Fragments的ViewPager,并且我想在出现Fragment(当用户可以看到它)和Fragment消失(当用户停止看到Fragment)时运行一些代码
我尝试覆盖onPause(),onResume() 但是没有出现在UI中的Fragment仍然会运行这些方法(我认为创建Fragment时会运行这些方法。)
@Override
public void onPause() {
Log.i(TAG, "====onPause - " + phrase.getPhrase());
super.onPause();
}
@Override
public void onResume() {
Log.i(TAG, "====onResume - " + phrase.getPhrase());
super.onResume();
}
我只想在Fragment在UI中出现和消失时才运行一些代码。 但对于我来说,每个新页面都会创建一个:
==== onPause-我希望您带Tom上学。 ==== onResume-Tom,我可以和你谈谈吗? ==== onPause-我知道汤姆想和你说话。 ==== onPause-我可以和您谈谈吗? ==== onPause-汤姆,我可以和您谈谈吗? ==== onResume-我知道汤姆想和你谈谈。 ==== onResume-我可以和你谈谈吗? ==== onResume-汤姆,我可以和你说话吗?
答案 0 :(得分:1)
您可以使用以下方法:-
override fun setUserVisibleHint(isVisibleToUser: Boolean) {
super.setUserVisibleHint(isVisibleToUser)
if(isVisibleToUser){
// do something
}
}
答案 1 :(得分:1)
我这样解决了我的问题:
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
if(phrase != null){
if(isVisibleToUser){
Log.i(TAG, "setUserVisibleHint" + phrase.getPhrase()+ "|isVisibleToUser " + isVisibleToUser);
}else {
Log.i(TAG, "setUserVisibleHint" + phrase.getPhrase()+ "|isVisibleToUser " + isVisibleToUser);
}
}
}