gpt4 book ai didi

android - 如何检测 fragment 何时出现在屏幕上?

转载 作者:可可西里 更新时间:2023-11-01 19:05:41 26 4
gpt4 key购买 nike

我的代码的某些部分如何知道 Fragment 实例在屏幕上可见?

以下 fragment 将解释我的问题。

public class MyApp extends Application {
public static final String TAG = MyApp.class.getSimpleName();

@Override
public void onCreate() {
super.onCreate();
registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {
...

@Override
public void onActivityResumed(Activity activity) {
Log.d(TAG, activity.getClass().getSimpleName() + " is on screen");
}

@Override
public void onActivityStopped(Activity activity) {
Log.d(TAG, activity.getClass().getSimpleName() + " is NOT on screen");
}

...
});
}

在这里,我可以跟踪我的应用程序中的任何 Activity 何时出现在屏幕上。有什么方法可以在 Fragments 上扩展这种方法吗?

有点像Activity.getFragmentManager().registerFragmentLifecycleCallbacks();

UPD. 我对 Activity 实现一无所知,他们是否使用 fragment 以及他们如何使用它们(通过 xml、ViewPager 等注入(inject))我在类里面唯一拥有的是应用上下文。假设 Activity 和 Fragment 实现是黑盒子,我无法进行任何更改。

最佳答案

在您的 fragment 中,覆盖 onHiddenChanged(...) 方法:

@Override
public void onHiddenChanged(boolean hidden) {
super.onHiddenChanged(hidden);
if (hidden) {
Log.d(TAG, ((Object) this).getClass().getSimpleName() + " is NOT on screen");
}
else
{
Log.d(TAG, ((Object) this).getClass().getSimpleName() + " is on screen");
}
}

希望这对你有用!

关于android - 如何检测 fragment 何时出现在屏幕上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29469890/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com