android - fragment isVisible() 为真时不可见

标签 android android-fragments

我有一个带有 fragment 容器的 Activity 和两个 fragment ,如“列表 fragment -> 详细 fragment ”

private boolean isFirstFragmentAdded() {
    return getSupportFragmentManager().findFragmentByTag("FIRST_FRAGMENT_TAG") != null;
}

private boolean isFirstFragmentVisible() {
    return getSupportFragmentManager().findFragmentByTag("FIRST_FRAGMENT_TAG").isVisible();
}

private boolean isSecondFragmentAdded() {
    return getSupportFragmentManager().findFragmentByTag("SECOND_FRAGMENT_TAG") != null;
}

private boolean isSecondFragmentVisible() {
    return getSupportFragmentManager().findFragmentByTag("SECOND_FRAGMENT_TAG").isVisible();
}

private void addFirstFragment() {
    firstFragment = new FirstFragment();
    getSupportFragmentManager().beginTransaction().add(R.id.fragment_container, firstFragment, "FIRST_FRAGMENT_TAG").commit();
}

private void showFirstFragment() {
    firstFragment = new FirstFragment();
    getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, firstFragment, "FIRST_FRAGMENT_TAG").commit();
}

private void addSecondFragment() {
    secondFragment = new SecondFragment();
    getSupportFragmentManager().beginTransaction().add(R.id.fragment_container, secondFragment, "SECOND_FRAGMENT_TAG").commit();
}

private void showSecondFragment() {
    secondFragment = new SecondFragment();      getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, secondFragment, "SECOND_FRAGMENT_TAG").commit();
}

private void refreshVisibleFragment() {
    if (isFirstFragmentAdded() && isFirstFragmentVisible()) {
        refreshFirstFragment();
    } else if (isSecondFragmentAdded() && isSecondFragmentVisible()) {
        refreshSecondFragment();
    }
}

问题是,即使我的第二个 fragment 可见,第一个总是返回 isVisible() == true,所以第二个 fragment 永远不会刷新。已经尝试删除、分离但没有任何效果:第一个 fragment 总是显示为已添加和可见。也在平板电脑和手机上测试它,同样的事情发生了。也许我遗漏了一些东西,但无法正确处理,因此我们将不胜感激。谢谢

最佳答案

尝试 fragment.isMenuVisible() 而不是设置 fragment.setMenuUserVisibility(false)

关于android - fragment isVisible() 为真时不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19412622/

相关文章:

android - 通知栏广告

java - android fragment 可以重复使用吗?

android - 坐标布局下工具栏重叠activity

java - 如何在 MainActivity 和 Fragment 中正确获取 WifiManager 的实例

java - ClassCastException:使用 DialogFragment 时应用程序崩溃

android - 如何改变android高程阴影的方向?

Android Webview goback() 问题与 loadDataWithBaseURL 方法

java - Android 使用自定义构造函数重新创建 fragment

java - DialogFragment 附加到 MainActivity 而不是父 Fragment Activity

Android:this.getApplication() 返回 NULL 指针