[英]onBackPressed with viewpager activity and fragments
i have a viewpager activity containing fragment named OneFragment. 我有一个viewpager活动,其中包含名为OneFragment的片段。
The Onefragment contains a recyclerview,on items click a fragment called DescriptionFragment opens. Onefragment包含一个recyclerview,在项目上单击一个称为DescriptionFragment的片段将打开。
This is how i opened the DescriptionFragment from the Adapter: 这就是我从适配器打开DescriptionFragment的方式:
Fragment descriptionFragment = new DescriptionFragment ();
FragmentTransaction transaction = mContext.beginTransaction();
transaction.replace(R.id.framelayout, descriptionFragment).addToBackStack(null).commit();
Problem: When i click on backpress button the app finishes. 问题:当我单击后按按钮时,应用程序完成。
I want on backpress to close the DescriptionFragment and return back to the OneFragment 我想在按下时关闭DescriptionFragment并返回到OneFragment
Look at the getFragmentManager().popBackStack() methods (there are several to choose from) 查看getFragmentManager()。popBackStack()方法(有几种方法可供选择)
http://developer.android.com/reference/android/app/FragmentManager.html#popBackStack() http://developer.android.com/reference/android/app/FragmentManager.html#popBackStack()
To elaborate, this is my solution (placed in an Activity): 详细说,这是我的解决方案(放在“活动”中):
@Override
public void onBackPressed(){
FragmentManager fm = getFragmentManager();
if (fm.getBackStackEntryCount() > 0) {
Log.i("MainActivity", "popping backstack");
fm.popBackStack();
} else {
Log.i("MainActivity", "nothing on backstack, calling super");
super.onBackPressed();
}
}
add fragment to stack while comitting a transaction like this 在执行这样的事务时将片段添加到堆栈
transaction.addToBackStack(OneFragment.getClass().getName);
and your transaction code should look somrething like this 您的交易代码应该看起来像这样
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction transaction= fragmentManager.beginTransaction();
transaction.replace(..............);
transaction.addToBackStack(null);
transaction.commit();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.