我正在使用 android.R.id.content
添加 fragment ,以便使用以下代码填充 Activity 的空间。
private void doFragmentTransaction(Fragment fragment, String tag) {
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.setCustomAnimations(R.anim.slide_in_bottom_y, R.anim.slide_out_bottom_y,
R.anim.slide_in_bottom_y, R.anim.slide_out_bottom_y);
transaction.add(android.R.id.content, fragment, tag);
transaction.addToBackStack(tag);
transaction.commitAllowingStateLoss();
}
我遇到了一个问题,无法通过按下后退按钮来捕捉 fragment 关闭的那一刻。生命周期方法 onStop
未被调用。
我应该怎么做才能使其正常工作以调用所有生命周期方法?
最佳答案
您好,您可以像下面这样处理 onBackPressed() Activity
@Override
public void onBackPressed() {
if (getSupportFragmentManager().getBackStackEntryCount() > 1) {
val frag = getSupportFragmentManager().findFragmentById(android.R.id.container);
if (frag is HomeFragment) {
Fragment currentFragment = (HomeFragment) frag;
//do your code
return
}
}
super.onBackPressed();
}
关于android - 在添加到 android.R.id.content 的 Fragment 中未调用 onStop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54707732/