gpt4 book ai didi

java - 用 fragment 实现返回栈

转载 作者:搜寻专家 更新时间:2023-11-01 09:47:39 29 4
gpt4 key购买 nike

我尝试在使用 fragment 时实现返回堆栈,但在使用“返回”按钮时,我总是从应用程序转到主屏幕。

Activity打开 fragment A; fragment A 有一个可点击的 TextView,可打开 fragment B(这有效)。按 BACK 应该会返回到 fragment A,但它会将我带到主屏幕。

这是 Activity 对 onCreate 中 fragment A 开头的调用:

    FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.add(R.id.fragment_layout_container, new FragmentLogin(), "fragment_login")
.addToBackStack("login_screen")
.commit();

Log.d("Back", getFragmentManager().getBackStackEntryCount() +" <- Entry Count at LoginActivity.onCreate" );

此时,日志打印0 <- Entry Count at LoginActivity.onCreate .我做错了什么使它无法打印 1。

然后, fragment A 有这个监听器:

    forgottenPassword.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.fragment_layout_container, new FragmentForgottenPassword(), "fragment_password")
.addToBackStack("forgotten_password")
.commit();

Log.d("Back", getFragmentManager().getBackStackEntryCount() + " <- Entry Count at FragmentLogin.onCreateView.Listener");
}
});

这里的日志打印1 <- Entry Count at FragmentLogin.onCreateView.Listener .在这里,监听器工作并打开 fragment B - 但后退按钮使我返回到主屏幕。

最佳答案

在你的 Activity 中使用它它应该弹出已经添加到 backstack 的 fragment

 @Override
public void onBackPressed()
{
if (getFragmentManager().getBackStackEntryCount() > 0) {
getFragmentManager().popBackStack();
} else {
super.onBackPressed();
}
}

关于java - 用 fragment 实现返回栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37206351/

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