0

我正在使用 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 {

        }
    }
};
4

1 回答 1

0

你可以尝试在后台添加一个监听器:http: //developer.android.com/reference/android/app/FragmentManager.html#addOnBackStackChangedListener(android.app.FragmentManager.OnBackStackChangedListener)

每当“某物”被添加到/从后台堆栈中删除时,它都会被调用。

然后,您可以检查片段的类的类型(或者您将当前片段保存在一个类中 - 您的 Activity - 变量)以确定是否有必要执行动画。

管理布局的方法可以简单地检查可见性 ( getVisibility) 以及是否VISIBLE设置为GONE,如果GONE设置为VISIBLE

于 2013-09-27T20:54:21.227 回答