【发布时间】:2016-05-13 09:32:23
【问题描述】:
我正在尝试在使用片段时实现后退堆栈,但是在使用后退按钮时,我不断地从应用程序中移到主屏幕。
Activity 打开片段 A;片段 A 有一个可点击的 TextView,可以打开片段 B(这有效)。点击 BACK 应该让我返回片段 A,但它会将我带到主屏幕。
这里是活动对onCreate中片段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。在这里,监听器工作并打开片段 B - 但返回按钮将我返回到主屏幕。
【问题讨论】:
标签: java android android-fragments fragment-backstack