如何在 ViewPager 中的片段出现和消失时执行一些代码
How to do some code when fragments in a ViewPager appear and disappear
在我的 android 应用程序中,我将 ViewPager 与 Fragments 一起使用,我想 运行 在 Fragment 出现时(当用户可以看到它时)和 Fragment 消失时(当用户停止看到片段)
我试图覆盖 onPause()、onResume()
但是 Fragments 无论如何都不会出现在 UI 运行 这些方法中(我认为这种方法 运行 在创建 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 - I want you to take Tom to school.
====onResume - Could I talk to you, Tom?
====onPause - I know Tom wants to talk to you.
====onPause - Could I talk to you?
====onPause - Could I talk to you, Tom?
====onResume - I know Tom wants to talk to you.
====onResume - Could I talk to you?
====onResume - Could I talk to you, Tom?
您可以使用以下方法:-
override fun setUserVisibleHint(isVisibleToUser: Boolean) {
super.setUserVisibleHint(isVisibleToUser)
if(isVisibleToUser){
// do something
}
}
我这样解决了我的问题:
@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);
}
}
}
在我的 android 应用程序中,我将 ViewPager 与 Fragments 一起使用,我想 运行 在 Fragment 出现时(当用户可以看到它时)和 Fragment 消失时(当用户停止看到片段)
我试图覆盖 onPause()、onResume() 但是 Fragments 无论如何都不会出现在 UI 运行 这些方法中(我认为这种方法 运行 在创建 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 - I want you to take Tom to school. ====onResume - Could I talk to you, Tom? ====onPause - I know Tom wants to talk to you. ====onPause - Could I talk to you? ====onPause - Could I talk to you, Tom? ====onResume - I know Tom wants to talk to you. ====onResume - Could I talk to you? ====onResume - Could I talk to you, Tom?
您可以使用以下方法:-
override fun setUserVisibleHint(isVisibleToUser: Boolean) {
super.setUserVisibleHint(isVisibleToUser)
if(isVisibleToUser){
// do something
}
}
我这样解决了我的问题:
@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);
}
}
}