android.support.v4.app.Fragment#getView ( )源码实例Demo

下面列出了android.support.v4.app.Fragment#getView ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: android_9.0.0_r45   文件: NavHostFragment.java
/**
 * Find a {@link NavController} given a local {@link Fragment}.
 *
 * <p>This method will locate the {@link NavController} associated with this Fragment,
 * looking first for a {@link NavHostFragment} along the given Fragment's parent chain.
 * If a {@link NavController} is not found, this method will look for one along this
 * Fragment's {@link Fragment#getView() view hierarchy} as specified by
 * {@link Navigation#findNavController(View)}.</p>
 *
 * @param fragment the locally scoped Fragment for navigation
 * @return the locally scoped {@link NavController} for navigating from this {@link Fragment}
 * @throws IllegalStateException if the given Fragment does not correspond with a
 * {@link NavHost} or is not within a NavHost.
 */
@NonNull
public static NavController findNavController(@NonNull Fragment fragment) {
    Fragment findFragment = fragment;
    while (findFragment != null) {
        if (findFragment instanceof NavHostFragment) {
            return ((NavHostFragment) findFragment).getNavController();
        }
        Fragment primaryNavFragment = findFragment.requireFragmentManager()
                .getPrimaryNavigationFragment();
        if (primaryNavFragment instanceof NavHostFragment) {
            return ((NavHostFragment) primaryNavFragment).getNavController();
        }
        findFragment = findFragment.getParentFragment();
    }

    // Try looking for one associated with the view instead, if applicable
    View view = fragment.getView();
    if (view != null) {
        return Navigation.findNavController(view);
    }
    throw new IllegalStateException("Fragment " + fragment
            + " does not have a NavController set");
}
 
/**
 * @param container View container (instanceof {@link WrappingViewPager}))
 * @param position  Item position
 * @param object    {@link Fragment}
 */
@Override
public void setPrimaryItem(ViewGroup container, int position, Object object) {
    super.setPrimaryItem(container, position, object);

    if (!(container instanceof WrappingViewPager)) {
        throw new UnsupportedOperationException("ViewPager is not a WrappingViewPager");
    }

    Fragment fragment = (Fragment) object;
    WrappingViewPager pager = (WrappingViewPager) container;
    if (fragment != null && fragment.getView() != null) {
        if (position != mCurrentPosition) {
            mCurrentPosition = position;
        }
        pager.onPageChanged(fragment.getView());
    }
}
 
源代码3 项目: Depth   文件: Depth.java
public void onFragmentReady(Fragment fragment) {
    DepthLogger.log("onFragmentReady "+fragment);
    if (fragment != null) {
        final View view = fragment.getView();
        if (view != null) {
            view.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
                @Override
                public boolean onPreDraw() {
                    view.getViewTreeObserver().removeOnPreDrawListener(this);
                    if (depthAnimator != null) {
                        depthAnimator.reloadFragmentsState();
                    }
                    return false;
                }
            });
        }
    }
}
 
源代码4 项目: FragmentRigger   文件: SwipeLayout.java
private void computeScrollPreView() {
    Fragment preFragment = getPreFragment();
    if (preFragment == null) {
        if (mPuppetHost instanceof Activity) {
            computeScrollActivityView();
        }
        return;
    }
    View view = preFragment.getView();
    computeScroll(view);
}
 
public Scrollable getCurrentScrollable() {
    Fragment fragment = getCurrentFragment();
    if (fragment == null) {
        return null;
    }
    View view = fragment.getView();
    if (view == null) {
        return null;
    }
    return (Scrollable) view.findViewById(R.id.scroll);
}
 
源代码6 项目: SwipeBackFragment   文件: SwipeBackLayout.java
@Override
public boolean tryCaptureView(View child, int pointerId) {
    boolean dragEnable = mHelper.isEdgeTouched(mEdgeFlag, pointerId);
    if (dragEnable) {
        if (mHelper.isEdgeTouched(EDGE_LEFT, pointerId)) {
            mCurrentSwipeOrientation = EDGE_LEFT;
        } else if (mHelper.isEdgeTouched(EDGE_RIGHT, pointerId)) {
            mCurrentSwipeOrientation = EDGE_RIGHT;
        }

        if (mListeners != null && !mListeners.isEmpty()) {
            for (OnSwipeListener listener : mListeners) {
                listener.onEdgeTouch(mCurrentSwipeOrientation);
            }
        }

        if (mPreFragment == null) {
            if (mFragment != null) {
                List<Fragment> fragmentList = mFragment.getFragmentManager().getFragments();
                if (fragmentList != null && fragmentList.size() > 1) {
                    int index = fragmentList.indexOf(mFragment);
                    for (int i = index - 1; i >= 0; i--) {
                        Fragment fragment = fragmentList.get(i);
                        if (fragment != null && fragment.getView() != null) {
                            fragment.getView().setVisibility(VISIBLE);
                            mPreFragment = fragment;
                            break;
                        }
                    }
                }
            }
        } else {
            View preView = mPreFragment.getView();
            if (preView != null && preView.getVisibility() != VISIBLE) {
                preView.setVisibility(VISIBLE);
            }
        }
    }
    return dragEnable;
}
 
源代码7 项目: TikTok   文件: FragmentUtils.java
/**
 * 设置背景资源
 *
 * @param fragment fragment
 * @param resId    资源Id
 */
public static void setBackgroundResource(@NonNull Fragment fragment, @DrawableRes int resId) {
    View view = fragment.getView();
    if (view != null) {
        view.setBackgroundResource(resId);
    }
}
 
源代码8 项目: AndroidUtilCode   文件: FragmentUtils.java
/**
 * Set background color for fragment.
 *
 * @param fragment The fragment.
 * @param color    The background color.
 */
public static void setBackgroundColor(@NonNull final Fragment fragment,
                                      @ColorInt final int color) {
    View view = fragment.getView();
    if (view != null) {
        view.setBackgroundColor(color);
    }
}
 
public Scrollable getCurrentScrollable() {
    Fragment fragment = getCurrentFragment();
    if (fragment == null) {
        return null;
    }
    View view = fragment.getView();
    if (view == null) {
        return null;
    }
    return (Scrollable) view.findViewById(R.id.scroll);
}
 
源代码10 项目: StatusView   文件: StatusView.java
/**
 * 在Fragment中的初始化方法
 *
 * @param fragment
 * @param viewId   使用多状态布局的 ViewId
 * @return
 */
public static StatusView init(Fragment fragment, @IdRes int viewId) {
    View rootView = fragment.getView();
    View contentView = null;
    if (rootView != null) {
        contentView = rootView.findViewById(viewId);
    }
    return init(contentView);
}
 
源代码11 项目: Tracker   文件: ViewClickedEventListener.java
/**
 * 设置Fragment页面中View的事件监听
 * @param fragment
 */
public void setFragmentTracker(Fragment fragment) {
	View contentView = fragment.getView();
	if (contentView != null) {
		setViewClickedTracker(contentView, fragment);
	}
}
 
源代码12 项目: SwipeBackLibrary   文件: SwipeBackFragmentImpl.java
@Override
public void onHiddenChanged(boolean hidden) {
    super.onHiddenChanged(hidden);
    if (hidden) {
        Fragment preFragment = (Fragment) getPreFragment();
        if (preFragment != null && preFragment.getView() != null){
            preFragment.getView().setVisibility(View.GONE);
        }
    }
}
 
@Override
public boolean isViewFromObject(View view, Object object) {
    for (Fragment fragment : fragmentManager.getFragments()) {
        if (fragment != null) {
            View v = fragment.getView();
            if (v != null && v == view && makeFragmentName(((IdentifiedItem) object).id).equals(fragment.getTag())) {
                return true;
            }
        }
    }
    return false;
}
 
源代码14 项目: Android-UtilCode   文件: FragmentUtils.java
/**
 * 设置背景
 *
 * @param fragment   fragment
 * @param background 背景
 */
public static void setBackground(@NonNull Fragment fragment, Drawable background) {
    View view = fragment.getView();
    if (view != null) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
            view.setBackground(background);
        } else {
            view.setBackgroundDrawable(background);
        }
    }
}
 
源代码15 项目: Depth   文件: DepthAnimator.java
private void afterAnimationEnd(int index) {
    final Fragment fragmentAnimated = fragmentsState.get(index).getFragment();
    final DepthAnimation finishedAnimation = animations.get(index);
    depth.notifyListenersEnd(finishedAnimation, fragmentAnimated);
    this.currentIndex = index + 1;

    DepthLogger.log("afterAnimationEnd "+finishedAnimation.getClass().getCanonicalName());

    if(finishedAnimation instanceof ExitAnimation){
        if (fragmentAnimated != null) {
            final View fragmentView = fragmentAnimated.getView();
            if (fragmentView != null) {
                fragmentView.postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        depth.removeFragment(fragmentAnimated);
                    }
                }, 100);
            }
        }
    }

    if (currentIndex < animations.size()) {
        startAnimation(currentIndex);
    } else {
        DepthLogger.log("clear");

        for (DepthFragmentState depthFragmentState : fragmentsState) {
            depthFragmentState.clear();
        }
        fragmentsState.clear();
        for (DepthAnimation animation : animations) {
            animation.clear();
        }
        animations.clear();
        System.gc();

        depth.onAnimationFinished();
    }
}
 
@Override
public void onUpOrCancelMotionEvent(ScrollState scrollState) {
    mBaseTranslationY = 0;

    Fragment fragment = getCurrentFragment();
    if (fragment == null) {
        return;
    }
    View view = fragment.getView();
    if (view == null) {
        return;
    }

    int toolbarHeight = mToolbarView.getHeight();
    final ObservableScrollView scrollView = (ObservableScrollView) view.findViewById(R.id.scroll);
    if (scrollState == ScrollState.UP) {
        if (toolbarHeight < scrollView.getCurrentScrollY()) {
            hideToolbar();
        } else if (scrollView.getCurrentScrollY() < toolbarHeight) {
            showToolbar();
        }
    } else if (scrollState == ScrollState.DOWN) {
        if (toolbarHeight < scrollView.getCurrentScrollY()) {
            showToolbar();
        }
    }
}
 
private Scrollable getCurrentScrollable() {
    Fragment fragment = getCurrentFragment();
    if (fragment == null) {
        return null;
    }
    View view = fragment.getView();
    if (view == null) {
        return null;
    }
    return (Scrollable) view.findViewById(R.id.scroll);
}
 
源代码18 项目: OpenPagerAdapter   文件: OpenPagerAdapter.java
@Override
public boolean isViewFromObject(View view, Object object) {
    Fragment fragment = ((ItemInfo) object).fragment;
    return fragment.getView() == view;
}
 
源代码19 项目: hawkular-android-client   文件: ViewDirector.java
@NonNull
public static ViewDirector of(@NonNull Fragment fragment) {
    return new ViewDirector(fragment.getView());
}
 
源代码20 项目: CanRefresh   文件: CanRefreshLayout.java
/**
 * 是否能上拉
 *
 * @return boolean
 */
protected boolean canChildScrollDown() {


    if (mIsCoo) {

        if (mIsViewPager) {
            int current = mViewPager.getCurrentItem();
            if (current < mViewPager.getChildCount()) {

                PagerAdapter adapter = mViewPager.getAdapter();

                if (adapter instanceof FragmentPagerAdapter) {

                    FragmentPagerAdapter fragmentPagerAdapter = (FragmentPagerAdapter) adapter;

                    Fragment fragment = fragmentPagerAdapter.getItem(current);

                    if (fragment != null) {
                        mScrollView = fragment.getView();
                    }

                } else {

                    mScrollView = mViewPager.getChildAt(current);
                }


            }
        }

        if (mScrollView == null) {
            return false;
        }
        return isDependentOpen || canScrollDown(mScrollView);


    }

    return canScrollDown(mContentView);


}