Java Code Examples for android.support.v4.app.FragmentManager#getFragments()
The following examples show how to use
android.support.v4.app.FragmentManager#getFragments() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: FragmentUtils.java From MVVMArms with Apache License 2.0 | 6 votes |
/** * 根据栈参数获取所有fragment * <p>需之前对fragment的操作都借助该工具类</p> * * @param fragmentManager fragment管理器 * @param result 结果 * @param isInStack 是否是栈中的 * @return 栈中所有fragment */ private static List<FragmentNode> getAllFragmentsIsInStack(@NonNull FragmentManager fragmentManager, List<FragmentNode> result, boolean isInStack) { List<Fragment> fragments = fragmentManager.getFragments(); if (fragments == null || fragments.isEmpty()) { return Collections.emptyList(); } for (int i = fragments.size() - 1; i >= 0; --i) { Fragment fragment = fragments.get(i); if (fragment != null) { if (isInStack) { if (fragment.getArguments().getBoolean(ARGS_IS_ADD_STACK)) { result.add(new FragmentNode(fragment, getAllFragmentsIsInStack(fragment.getChildFragmentManager(), new ArrayList<FragmentNode>(), true))); } } else { result.add(new FragmentNode(fragment, getAllFragmentsIsInStack(fragment.getChildFragmentManager(), new ArrayList<FragmentNode>(), false))); } } } return result; }
Example 2
Source File: FragmentUtils.java From Android-UtilCode with Apache License 2.0 | 6 votes |
/** * 根据栈参数获取同级别fragment * * @param fragmentManager fragment管理器 * @param isInStack 是否是栈中的 * @return 栈中同级别fragment */ private static List<Fragment> getFragmentsIsInStack(@NonNull FragmentManager fragmentManager, boolean isInStack) { List<Fragment> fragments = fragmentManager.getFragments(); if (fragments == null || fragments.isEmpty()) return Collections.emptyList(); List<Fragment> result = new ArrayList<>(); for (int i = fragments.size() - 1; i >= 0; --i) { Fragment fragment = fragments.get(i); if (fragment != null) { if (isInStack) { if (fragment.getArguments().getBoolean(ARGS_IS_ADD_STACK)) { result.add(fragment); } } else { result.add(fragment); } } } return result; }
Example 3
Source File: FragmentUtils.java From MVVMArms with Apache License 2.0 | 6 votes |
/** * 根据栈参数获取同级别fragment * * @param fragmentManager fragment管理器 * @param isInStack 是否是栈中的 * @return 栈中同级别fragment */ private static List<Fragment> getFragmentsIsInStack(@NonNull FragmentManager fragmentManager, boolean isInStack) { List<Fragment> fragments = fragmentManager.getFragments(); if (fragments == null || fragments.isEmpty()) { return Collections.emptyList(); } List<Fragment> result = new ArrayList<>(); for (int i = fragments.size() - 1; i >= 0; --i) { Fragment fragment = fragments.get(i); if (fragment != null) { if (isInStack) { if (fragment.getArguments().getBoolean(ARGS_IS_ADD_STACK)) { result.add(fragment); } } else { result.add(fragment); } } } return result; }
Example 4
Source File: TargetMethodFinder.java From android-task with Apache License 2.0 | 6 votes |
@SuppressLint("RestrictedApi") private static Pair<Method, Object> findMethodInFragmentManager(FragmentManager fragmentManager, Class<?> resultType, Class<? extends TaskResult> annotation, Task<?> task, boolean compareFragmentIndex) { if (fragmentManager == null) { return null; } List<Fragment> fragments = fragmentManager.getFragments(); if (fragments == null) { return null; } for (Fragment childFragment : fragments) { if (childFragment == null || childFragment.getActivity() == null) { continue; } Pair<Method, Object> pair = findMethodInFragment(childFragment, childFragment.getClass(), resultType, annotation, task, compareFragmentIndex); if (pair != null) { return pair; } } return null; }
Example 5
Source File: FragmentUtils.java From styT with Apache License 2.0 | 6 votes |
/** * 根据栈参数获取同级别fragment * * @param fragmentManager fragment管理器 * @param isInStack 是否是栈中的 * @return 栈中同级别fragment */ private static List<Fragment> getFragmentsIsInStack(@NonNull final FragmentManager fragmentManager, final boolean isInStack) { List<Fragment> fragments = fragmentManager.getFragments(); if (fragments == null || fragments.isEmpty()) return Collections.emptyList(); List<Fragment> result = new ArrayList<>(); for (int i = fragments.size() - 1; i >= 0; --i) { Fragment fragment = fragments.get(i); if (fragment != null) { if (isInStack) { if (fragment.getArguments().getBoolean(ARGS_IS_ADD_STACK)) { result.add(fragment); } } else { result.add(fragment); } } } return result; }
Example 6
Source File: FragmentUtils.java From styT with Apache License 2.0 | 6 votes |
/** * 根据栈参数获取所有fragment * <p>需之前对fragment的操作都借助该工具类</p> * * @param fragmentManager fragment管理器 * @param result 结果 * @param isInStack 是否是栈中的 * @return 栈中所有fragment */ private static List<FragmentNode> getAllFragmentsIsInStack(@NonNull final FragmentManager fragmentManager, final List<FragmentNode> result, final boolean isInStack) { List<Fragment> fragments = fragmentManager.getFragments(); if (fragments == null || fragments.isEmpty()) return Collections.emptyList(); for (int i = fragments.size() - 1; i >= 0; --i) { Fragment fragment = fragments.get(i); if (fragment != null) { if (isInStack) { if (fragment.getArguments().getBoolean(ARGS_IS_ADD_STACK)) { result.add(new FragmentNode(fragment, getAllFragmentsIsInStack(fragment.getChildFragmentManager(), new ArrayList<FragmentNode>(), true))); } } else { result.add(new FragmentNode(fragment, getAllFragmentsIsInStack(fragment.getChildFragmentManager(), new ArrayList<FragmentNode>(), false))); } } } return result; }
Example 7
Source File: FragmentUtils.java From MVVMArms with Apache License 2.0 | 6 votes |
/** * 处理fragment回退键 * <p>如果fragment实现了OnBackClickListener接口,返回{@code true}: 表示已消费回退键事件,反之则没消费</p> * <p>具体示例见FragmentActivity</p> * * @param fragmentManager fragment管理器 * @return 是否消费回退事件 */ public static boolean dispatchBackPress(@NonNull FragmentManager fragmentManager) { List<Fragment> fragments = fragmentManager.getFragments(); if (fragments == null || fragments.isEmpty()) { return false; } for (int i = fragments.size() - 1; i >= 0; --i) { Fragment fragment = fragments.get(i); if (fragment != null && fragment.isResumed() && fragment.isVisible() && fragment.getUserVisibleHint() && fragment instanceof OnBackClickListener && ((OnBackClickListener) fragment).onBackClick()) { return true; } } return false; }
Example 8
Source File: BaseActivity.java From timecat with Apache License 2.0 | 6 votes |
protected void recoverFragment(String currentFragmentTag) { if (currentFragmentTag == null) { return; } FragmentManager fm = getSupportFragmentManager(); FragmentTransaction ft = fm.beginTransaction(); List<Fragment> fragments = fm.getFragments(); for (Fragment fragment : fragments) { if (fragment.getTag().equals(currentFragmentTag)) { ft.show(fragment); } else { ft.hide(fragment); } } ft.commitAllowingStateLoss(); Fragment current = fm.findFragmentByTag(currentFragmentTag); switchFragment(current); }
Example 9
Source File: FragmentUtils.java From Android-UtilCode with Apache License 2.0 | 6 votes |
/** * 处理fragment回退键 * <p>如果fragment实现了OnBackClickListener接口,返回{@code true}: 表示已消费回退键事件,反之则没消费</p> * <p>具体示例见FragmentActivity</p> * * @param fragmentManager fragment管理器 * @return 是否消费回退事件 */ public static boolean dispatchBackPress(@NonNull FragmentManager fragmentManager) { List<Fragment> fragments = fragmentManager.getFragments(); if (fragments == null || fragments.isEmpty()) return false; for (int i = fragments.size() - 1; i >= 0; --i) { Fragment fragment = fragments.get(i); if (fragment != null && fragment.isResumed() && fragment.isVisible() && fragment.getUserVisibleHint() && fragment instanceof OnBackClickListener && ((OnBackClickListener) fragment).onBackClick()) { return true; } } return false; }
Example 10
Source File: FragmentIdHelper.java From android-task with Apache License 2.0 | 6 votes |
@SuppressLint("RestrictedApi") private static String getIndex(Fragment fragment) { String index; if (fragment.getParentFragment() != null) { index = getIndex(fragment.getParentFragment()) + "-"; } else { index = ""; } FragmentManager fragmentManager = fragment.getFragmentManager(); if (fragmentManager != null) { List<Fragment> fragments = fragmentManager.getFragments(); if (fragments != null && !fragments.isEmpty()) { for (int i = 0; i < fragments.size(); i++) { if (fragment.equals(fragments.get(i))) { index += i; break; } } } } return index; }
Example 11
Source File: FragmentUtils.java From Android-UtilCode with Apache License 2.0 | 6 votes |
/** * 根据栈参数获取所有fragment * <p>需之前对fragment的操作都借助该工具类</p> * * @param fragmentManager fragment管理器 * @param result 结果 * @param isInStack 是否是栈中的 * @return 栈中所有fragment */ private static List<FragmentNode> getAllFragmentsIsInStack(@NonNull FragmentManager fragmentManager, List<FragmentNode> result, boolean isInStack) { List<Fragment> fragments = fragmentManager.getFragments(); if (fragments == null || fragments.isEmpty()) return Collections.emptyList(); for (int i = fragments.size() - 1; i >= 0; --i) { Fragment fragment = fragments.get(i); if (fragment != null) { if (isInStack) { if (fragment.getArguments().getBoolean(ARGS_IS_ADD_STACK)) { result.add(new FragmentNode(fragment, getAllFragmentsIsInStack(fragment.getChildFragmentManager(), new ArrayList<FragmentNode>(), true))); } } else { result.add(new FragmentNode(fragment, getAllFragmentsIsInStack(fragment.getChildFragmentManager(), new ArrayList<FragmentNode>(), false))); } } } return result; }
Example 12
Source File: FragmentUtils.java From TikTok with Apache License 2.0 | 6 votes |
/** * 处理fragment回退键 * <p>如果fragment实现了OnBackClickListener接口,返回{@code true}: 表示已消费回退键事件,反之则没消费</p> * <p>具体示例见FragmentActivity</p> * * @param fragmentManager fragment管理器 * @return 是否消费回退事件 */ public static boolean dispatchBackPress(@NonNull FragmentManager fragmentManager) { List<Fragment> fragments = fragmentManager.getFragments(); if (fragments == null || fragments.isEmpty()) return false; for (int i = fragments.size() - 1; i >= 0; --i) { Fragment fragment = fragments.get(i); if (fragment != null && fragment.isResumed() && fragment.isVisible() && fragment.getUserVisibleHint() && fragment instanceof OnBackClickListener && ((OnBackClickListener) fragment).onBackClick()) { return true; } } return false; }
Example 13
Source File: BaseCommonActivity.java From SimpleProject with MIT License | 5 votes |
/** * 恢复嵌套的Fragment */ public void restoreChildFragment(Fragment currentFragment) { FragmentManager fm = currentFragment.getFragmentManager(); List<Fragment> fragmentList = fm != null ? fm.getFragments() : null; if (CollectionUtil.isEmpty(fragmentList)) { return; } for (Fragment fragment : fragmentList) { fragment.onAttach((Context)context); } }
Example 14
Source File: FragmentHelper.java From EventApp with Apache License 2.0 | 5 votes |
public static boolean isCurrentFragment(FragmentManager fragmentManager, Class<? extends Fragment> clazz) { Fragment fragment = null; List<Fragment> fragments = fragmentManager.getFragments(); int index = fragments.size(); while (fragment == null && index >= 0) { index--; fragment = fragments.get(index); } return fragment != null && fragment.getClass().equals(clazz); }
Example 15
Source File: Task.java From android-task with Apache License 2.0 | 5 votes |
@SuppressLint("RestrictedApi") private Fragment findFragment(FragmentManager manager) { if (manager == null) { return null; } List<Fragment> fragments = manager.getFragments(); if (fragments == null) { return null; } for (Fragment fragment : fragments) { if (fragment == null) { continue; } String fragmentId = FragmentIdHelper.getFragmentId(fragment); if (mFragmentId.equals(fragmentId)) { return fragment; } if (FragmentHack.getChildFragmentManager(fragment) != null) { Fragment child = findFragment(FragmentHack.getChildFragmentManager(fragment)); if (child != null) { return child; } } } return null; }
Example 16
Source File: FragmentUtil.java From DeviceInfo with Apache License 2.0 | 5 votes |
public void clearBackStackFragmets() { /* if (1==1) return;*/ try { // in my case I get the support fragment manager, it should work with the native one too FragmentManager fragmentManager = mActivity.getSupportFragmentManager(); // this will clear the back stack and displays no animation on the screen fragmentManager.popBackStackImmediate(null, FragmentManager.POP_BACK_STACK_INCLUSIVE); // fragmentManager.popBackStackImmediate(SplashFragment.class.getCanonicalName(),FragmentManager.POP_BACK_STACK_INCLUSIVE); List<Fragment> fragmentList = fragmentManager.getFragments(); if (fragmentList != null && !fragmentList.isEmpty()) { FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); for (Fragment fragment : fragmentList) { if (fragment != null) { fragmentTransaction.remove(fragment); } } fragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); fragmentTransaction.commit(); } } catch (Exception e) { e.printStackTrace(); } }
Example 17
Source File: AppHelper.java From FastAccess with GNU General Public License v3.0 | 5 votes |
@Nullable public static Fragment getVisibleFragment(@NonNull FragmentManager manager) { List<Fragment> fragments = manager.getFragments(); if (fragments != null && !fragments.isEmpty()) { for (Fragment fragment : fragments) { if (fragment != null && fragment.isVisible()) { Logger.e(fragment.getClass().getSimpleName(), fragment.isVisible()); return fragment; } } } return null; }
Example 18
Source File: LazyLoadFragment.java From LazyLoadFragment with Apache License 2.0 | 5 votes |
/** * ViewPager场景下,当前fragment可见,如果其子fragment也可见,则尝试让子fragment加载请求 */ private void dispatchParentVisibleState() { FragmentManager fragmentManager = getChildFragmentManager(); List<Fragment> fragments = fragmentManager.getFragments(); if (fragments.isEmpty()) { return; } for (Fragment child : fragments) { if (child instanceof LazyLoadFragment && ((LazyLoadFragment) child).isVisibleToUser) { ((LazyLoadFragment) child).tryLoadData(); } } }
Example 19
Source File: UIHelper.java From iSCAU-Android with GNU General Public License v3.0 | 5 votes |
private static void deAttachAllFragments(ActionBarActivity act){ FragmentManager fragmentManager = act.getSupportFragmentManager(); FragmentTransaction ft = fragmentManager.beginTransaction(); List<Fragment> fragments = fragmentManager.getFragments(); if (fragments == null) return; for(Fragment fragment : fragments){ if (fragment.isVisible()) ft.hide(fragment); } ft.commitAllowingStateLoss(); }
Example 20
Source File: LazyLoadFragment.java From StatusView with Apache License 2.0 | 5 votes |
/** * show()、hide()场景下,当前fragment没隐藏,如果其子fragment也没隐藏,则尝试让子fragment请求数据 */ private void dispatchParentHiddenState() { FragmentManager fragmentManager = getChildFragmentManager(); List<Fragment> fragments = fragmentManager.getFragments(); if (fragments.isEmpty()) { return; } for (Fragment child : fragments) { if (child instanceof LazyLoadFragment && !((LazyLoadFragment) child).isHidden) { ((LazyLoadFragment) child).tryLoadData1(); } } }