@Override public boolean isViewFromObject(View view, Object object) { return ((Fragment)object).getView() == view; }
@Override public void setPrimaryItem(ViewGroup container, int position, Object object) { super.setPrimaryItem(container, position, object); if (position != mCurrentPosition) { Fragment fragment = (Fragment) object; CustomPager pager = (CustomPager) container; if (fragment != null && fragment.getView() != null) { mCurrentPosition = position; pager.measureCurrentView(fragment.getView()); } } }
@Nullable @Override public View getView(Fragment fragment) { return fragment.getView(); }
adapter = mViewPager.getAdapter(); Fragment fragment = adapter.getItem(mViewPager.getCurrentItem()); View activeView = fragment.getView();
@Override public void onFragmentViewDestroyed(FragmentManager fm, Fragment fragment) { View view = fragment.getView(); if (view != null) { refWatcher.watch(view); } }
private static void findAllSupportFragmentsWithViews( @Nullable Collection<Fragment> topLevelFragments, @NonNull Map<View, Fragment> result) { if (topLevelFragments == null) { return; } for (Fragment fragment : topLevelFragments) { // getFragment()s in the support FragmentManager may contain null values, see #1991. if (fragment == null || fragment.getView() == null) { continue; } result.put(fragment.getView(), fragment); findAllSupportFragmentsWithViews(fragment.getChildFragmentManager().getFragments(), result); } }
/** * Corresponding onActivityCreated() method * * @param savedInstanceState Instance state, here to match the Fragment API but unused */ public void onActivityCreated(@Nullable Bundle savedInstanceState) { if (!showsBottomSheet) { return; } View view = fragment.getView(); if (view != null) { if (view.getParent() != null) { throw new IllegalStateException("BottomSheetFragment can not be attached to a container view"); } } }
public class MainActivity extends Activity implements onSomeEventListener{ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Fragment frag2 = new Fragment2(); FragmentTransaction ft = getFragmentManager().beginTransaction(); ft.add(R.id.fragment2, frag2); ft.commit(); } @Override public void someEvent(String s) { Fragment frag1 = getFragmentManager().findFragmentById(R.id.fragment1); ((TextView)frag1.getView().findViewById(R.id.textView)).setText("Text from Fragment 2:" + s); } }
@Nullable private BottomSheetLayout findBottomSheetLayout() { Fragment parentFragment = fragment.getParentFragment(); if (parentFragment != null) { View view = parentFragment.getView(); if (view != null) { return (BottomSheetLayout) view.findViewById(bottomSheetLayoutId); } else { return null; } } Activity parentActivity = fragment.getActivity(); if (parentActivity != null) { return (BottomSheetLayout) parentActivity.findViewById(bottomSheetLayoutId); } return null; }
/** * Return fragments tag which the fragment's view is visible and is add onto the container view. * * @param containerViewId The container view's id to be found. * * @return The fragment tags. */ private String[] getVisibleFragmentTags(@IdRes int containerViewId) { List<String> result = new ArrayList<>(); String[] fragmentTags = mStackManager.getFragmentTags(containerViewId); for (String tag : fragmentTags) { Fragment fragment = mRiggerTransaction.find(tag); if (fragment != null && !fragment.isHidden() && fragment.getView() != null && fragment.getView().getVisibility() == View.VISIBLE) { result.add(tag); } } return result.toArray(new String[result.size()]); }
@Override public void destroyItem(ViewGroup container, int position, Object object) { Fragment fragment = (Fragment) object; if (mCurTransaction == null) { mCurTransaction = mFragmentManager.beginTransaction(); } if (DEBUG) Log.v(TAG, "Removing item #" + position + ": f=" + object + " v=" + ((Fragment)object).getView()); while (mSavedState.size() <= position) { mSavedState.add(null); } mSavedState.set(position, fragment.isAdded() ? mFragmentManager.saveFragmentInstanceState(fragment) : null); mFragments.set(position, null); try { fragment.getView().clearAnimation(); } catch (Exception e) { e.printStackTrace(); } mCurTransaction.remove(fragment); }
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); }
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); }
@Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { //Correct position for RTL. One is subtracted to make it zero indexed int realPosition = isRtl ? totalPages - 1 - position : position; if (getFragment() != null && getFragment() instanceof OnChangeListener && realPosition - index <= 1) { Fragment fragment = getFragment(); int fragmentWidth = 0; if (fragment.getView() != null) { fragmentWidth = fragment.getView().getWidth(); } boolean lowerPosition = isRtl ? realPosition > index : realPosition < index; float offset = lowerPosition ? -(1 - positionOffset) : positionOffset; int offsetPixels = lowerPosition ? -(fragmentWidth - positionOffsetPixels) : positionOffsetPixels; ((OnChangeListener) fragment).onWelcomeScreenPageScrolled(index, offset, offsetPixels); } }
/** * Corresponding onStart() method */ public void onStart() { if (bottomSheetLayout != null) { viewDestroyed = false; bottomSheetLayout.showWithSheetView(fragment.getView(), sheetFragmentInterface.getViewTransformer()); bottomSheetLayout.addOnSheetDismissedListener(this); } }
private void computeScrollPreView() { Fragment preFragment = getPreFragment(); if (preFragment == null) { if (mPuppetHost instanceof Activity) { computeScrollActivityView(); } return; } View view = preFragment.getView(); computeScroll(view); }
@Override public void onUpOrCancelMotionEvent(ScrollState scrollState) { mBaseTranslationY = 0; Fragment fragment = getCurrentFragment(); if (fragment == null) { return; } View view = fragment.getView(); if (view == null) { return; } // ObservableXxxViews have same API // but currently they don't have any common interfaces. adjustToolbar(scrollState, view); }
@Test public void testEmptyView() { Bundle args = new Bundle(); args.putParcelable(ItemFragment.EXTRA_ITEM, new TestItem() { }); Fragment fragment = Fragment.instantiate(RuntimeEnvironment.application, ItemFragment.class.getName(), args); makeVisible(fragment); assertThat((View) fragment.getView().findViewById(R.id.empty)).isVisible(); }
/** * show pop fragment and start animation. */ void startPopFragment(Animation animation) { String topFragmentTag = mStackManager.peek(); mRiggerTransaction.hide(getVisibleFragmentTags(getContainerViewId())); Fragment topFragment = mRiggerTransaction.find(topFragmentTag); if (!TextUtils.isEmpty(topFragmentTag) && topFragment != null) { if (animation != null) { View view = topFragment.getView(); if (view != null) { view.startAnimation(animation); } //cancel the default animation and use the custom animation. } mRiggerTransaction.setCustomAnimations(0, 0); mRiggerTransaction.show(topFragmentTag); } mRiggerTransaction.commit(); }
private void propagateToolbarState(boolean isShown) { int toolbarHeight = mToolbarView.getHeight(); // Set scrollY for the fragments that are not created yet mPagerAdapter.setScrollY(isShown ? 0 : toolbarHeight); // Set scrollY for the active fragments for (int i = 0; i < mPagerAdapter.getCount(); i++) { // Skip current item if (i == mPager.getCurrentItem()) { continue; } // Skip destroyed or not created item Fragment f = mPagerAdapter.getItemAt(i); if (f == null) { continue; } View view = f.getView(); if (view == null) { continue; } propagateToolbarState(isShown, view, toolbarHeight); } }