android - 在 Android 中隐藏/显示 fragment

标签 android android-fragments android-button android-fragmentactivity

我有一个包含 ButtonsFragmentActivity 和三个 Fragment 类。如果单击按钮 1,我想显示 FragmentOne 并隐藏 FragmentTwoFragmentThree。如果单击 Button2,我想显示 FragmentTwo 并隐藏 FragmentOneFragmentThree,反之亦然。我的代码不起作用。

    private void fManager() {

    FragmentManager manager = getSupportFragmentManager();

    f1 = manager.findFragmentById(R.id.first);
    f2 = manager.findFragmentById(R.id.second);
    f2 = manager.findFragmentById(R.id.third);
}

@Override
public void onClick(View v) {
    switch (v.getId()) {
    case R.id.button1:
        if (b1.isPressed()) {
            FragmentTransaction transaction = getSupportFragmentManager()
                    .beginTransaction();
            transaction.hide(f2);
            transaction.hide(f3);
            transaction.show(f1);
                            transaction.commit();
        }
        break;
    case R.id.button2:
        if (b2.isPressed()) {
            FragmentTransaction transaction = getSupportFragmentManager()
                    .beginTransaction();
            transaction.hide(f1);
            transaction.hide(f3);
            transaction.show(f2);
                            transaction.commit();
        }
        break;
    case R.id.button3:
        if (b3.isPressed()) {
            FragmentTransaction transaction = getSupportFragmentManager()
                    .beginTransaction();
            transaction.hide(f1);
            transaction.hide(f2);
            transaction.show(f3);
                         transaction.commit();
        }
        break;
    }

}

enter image description here

最佳答案

您需要提交您的交易:

transaction.commit();

另请注意,show()hide() 仅适用于添加到容器中的 fragment (例如 FrameLayout),因此如果你直接在 XML 中定义了你的 fragment ,那么你可能无法按照你尝试的方式做到这一点。此外,如果您使用容器,只需对它们执行常规 setVisibility() 而不是在那里处理 fragment - 效果将完全相同。

关于android - 在 Android 中隐藏/显示 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15865584/

相关文章:

android - 在 fragment 内做一个 Activity

android - 禁用 Activity 中的电源按钮

android - 如何在 ListView 控件中添加 Button,ImageView 小部件,它从 sqlite 数据库中获取和显示记录

android - 读取包含 åäö 的 Assets 中的文本文件

android - 如何在多个 fragment 中设置 SupportActionBar()?

java - RSA 算法适用于 Android 4.3,但适用于 Android 2.3.3

android - 空对象引用上的 FragmentActivity.getSupportFragmentManager()'

android - Android 中的星形按钮

java - Activity State保存和恢复Helper

android - 在 fragment 事务处理后单击时,EditText消失。