我有片段名称是mainfragemnt在那个im再次调用fragmentsecond,它包含4个标签(e,p,t,s片段)和4个片段所以当我在标签片段中我想在背面按主要片段而不是当我在pfragemnt中的片段soncond im中没有发生任何事情.i.suppose。当我回来按我想进入主片段
ViewPagerAdapter adapter = new ViewPagerAdapter(getChildFragmentManager());
EFragment eFragment = new EFragment();
eFragment.setArguments(bundle1);
PFragment pFragment = new PFragment();
pFragment.setArguments(bundle1);
TFragment tFragment = new TFragment();
tFragment.setArguments(bundle1);
SFragment sFragment = new SFragment();
sFragment.setArguments(bundle1);
adapter.addFrag(eFragment, E_FRAGMENT);
adapter.addFrag(pFragment, P_FRAGMENT);
adapter.addFrag(tFragment, T_FRAGMENT);
adapter.addFrag(sFragment, S_FRAGMENT);
viewPager.setOffscreenPageLimit(3);
viewPager.setAdapter(adapter);
答案 0 :(得分:0)
在调用tabfragment时添加以下语句..
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.add(R.id.Container, new TabFragment());
transaction.addToBackStack("TabFragment");
transaction.commit();
并在MainActivity中覆盖onBackPressed方法并写下面的语句..
if (getSupportFragmentManager().getBackStackEntryCount() > 0){
getSupportFragmentManager().popBackStack();
} else {
super.onBackPressed();
}
答案 1 :(得分:0)
你需要覆盖android onBackPressed方法:
from sub1.cat import Cat
答案 2 :(得分:0)
我正在通过活动
进行处理 onbackpress(){
Fragment second= getSupportFragmentManager().findFragmentByTag("fragemntsecond");
if (event != null && event.isVisible()) {
mainfragment mainfragment = new mainfragment ();
this.getSupportFragmentManager().beginTransaction()
.replace(R.id.frame, mainfragment , "mainfragment ")
.commit();
}
}
答案 3 :(得分:-1)
看看这是否有帮助,您可以从选择的任何标签而不是标签1
转到标签1我使用了Tab布局,并使用了ViewPager,
我在我的活动的onBackPressed
方法中已经设置了tablayout
@Override
public void onBackPressed() {
private boolean doubleBackToExitPressedOnce = false;
if (mViewPager.getCurrentItem() > 0) {
//if any tab selected instead of tab 1
mDoubleBackToExitPressedOnce = false;
} else if (mViewPager.getCurrentItem() == 0) {
//if tab 1 selected
mDoubleBackToExitPressedOnce = true;
if (mDoubleBackToExitPressedOnce)
super.onBackPressed();
}
mViewPager.setCurrentItem(0);//go to tab 1
}
mViewPager
是ViewPager的全局变量
按mViewPager.getCurrentItem()
,您将在ViewPager中选择当前标签
如果您通过单击选项卡滑动或选择任何选项卡,它将返回当前选项卡位置
<强>解释强>
onBackPressed
活动方法 中的
我已检查是否选择了Tab 1 如果是,则将布尔值设置为false 我已检查是否选择了标签1 如果是,则将布尔值设置为true 然后在 if else条件中的第3步 通过这个写 这样做的目的是 如果你在Tab 1之外的任何其他标签中,如果你按下手机中的后退按钮,将选择标签1 如果你在标签1中并按下手机中的后退按钮,则应用将关闭,即 这是一个聊天,状态和通话的whatsapp标签的实例
if
条件中的第一步
else if
条件中的第二步 if
条件中检查该布尔值是否为真,如果为真,则调用super.onBackPressed();
mViewPager.setCurrentItem(0);
,你将从任何标签直接切换到标签1,然后标签1
super.onBackPressed();
将被调用