我正在使用OnClickListener来进行片段替换。我也在OnClickListener中将3个LinearLayouts切换为'GONE'。
我想在按下后退按钮时添加一个功能,将3个LinearLayouts设置回VISIBLE。片段交换回来,但LinearLayouts不会改变它们的状态。
感谢任何帮助,谢谢!
final OnClickListener swapFragments = new OnClickListener() {
@Override
public void onClick(View v) {
if (myAdapter.isEmpty() != true) {
FragmentTransaction ft = getFragmentManager()
.beginTransaction();
FragmentTwoTop ftt = new FragmentTwoTop();
FragmentTwoBottom ftb = new FragmentTwoBottom();
ft.replace(R.id.leftTopHolder, ftt, "fragmenttwotop");
ft.replace(R.id.leftBottomtHolder, ftb, "fragmenttwobottom");
layoutOne.setVisibility(View.GONE);
layoutTwo.setVisibility(View.GONE);
layoutThree.setVisibility(View.GONE);
ft.addToBackStack("swapfragments");
ft.commit();
} else {
}
}
};
答案 0 :(得分:0)
您可以尝试在backstack中添加一个监听器:http://developer.android.com/reference/android/app/FragmentManager.html#addOnBackStackChangedListener(android.app.FragmentManager.OnBackStackChangedListener)
只要在后台堆叠中添加或删除“某物”,就会调用它。
然后,您可以检查片段类的类型(或者您在类中保存当前片段 - 您的Activity - 变量)以确定是否需要执行动画。
管理布局的方法只需检查可见性(getVisibility
),如果是VISIBLE
,则设置为GONE
,如果GONE
设置为VISIBLE
{1}}。