有什么办法可以找到片段ID

时间:2020-02-08 04:59:51

标签: android android-fragments

我想使用片段的适配器进行活动。我正在尝试访问此

 HomeFragment fragment = (HomeFragment) getFragmentManager().findFragmentById(R.id.);

但是我正在使用这种方法将片段替换为一帧。

 public void replaceFragment(Fragment fragment, boolean isMainPage, Bundle bundle) {
    String backStateName = fragment.getClass().getName();
    FragmentManager manager = getSupportFragmentManager();
    boolean fragmentPopped = manager.popBackStackImmediate(backStateName, 0);

    if (bundle != null) {
        fragment.setArguments(bundle);
    }

    System.out.println("isMainPage :: " + isMainPage);
    System.out.println("FRAGMENT NAME :: " + backStateName + " fragmentPopped :: " + fragmentPopped);

    if (!fragmentPopped) { //fragment not in back stack, create it.
        FragmentTransaction transaction = manager.beginTransaction();
        transaction.replace(R.id.main_fragment, fragment);

        if (isMainPage) {
            getSupportFragmentManager().popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);

        }
        int backStackCount = getSupportFragmentManager().getBackStackEntryCount();
        System.out.println("backStackCount :: " + backStackCount);
        transaction.addToBackStack(backStateName);
       /* if (!backStateName.contains("HomeFragment")) {
            transaction.addToBackStack(backStateName);
        }*/


        transaction.commit();
    }
}

1 个答案:

答案 0 :(得分:1)

您使用

transaction.replace(R.id.main_fragment, fragment);

因此,您的片段位于ID R.id.main_fragment

HomeFragment fragment = (HomeFragment) getFragmentManager().findFragmentById(R.id.main_fragment);
相关问题