com.github.ksoichiro.android.observablescrollview.ScrollUtils Java Examples
The following examples show how to use
com.github.ksoichiro.android.observablescrollview.ScrollUtils.
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: FlexibleSpaceWithImageRecyclerViewActivity.java From Android-ObservableScrollView with Apache License 2.0 | 6 votes |
@Override public void onScrollChanged(int scrollY, boolean firstScroll, boolean dragging) { // Translate overlay and image float flexibleRange = mFlexibleSpaceImageHeight - mActionBarSize; int minOverlayTransitionY = mActionBarSize - mOverlayView.getHeight(); ViewHelper.setTranslationY(mOverlayView, ScrollUtils.getFloat(-scrollY, minOverlayTransitionY, 0)); ViewHelper.setTranslationY(mImageView, ScrollUtils.getFloat(-scrollY / 2, minOverlayTransitionY, 0)); // Translate list background ViewHelper.setTranslationY(mRecyclerViewBackground, Math.max(0, -scrollY + mFlexibleSpaceImageHeight)); // Change alpha of overlay ViewHelper.setAlpha(mOverlayView, ScrollUtils.getFloat((float) scrollY / flexibleRange, 0, 1)); // Scale title text float scale = 1 + ScrollUtils.getFloat((flexibleRange - scrollY) / flexibleRange, 0, MAX_TEXT_SCALE_DELTA); setPivotXToTitle(); ViewHelper.setPivotY(mTitleView, 0); ViewHelper.setScaleX(mTitleView, scale); ViewHelper.setScaleY(mTitleView, scale); // Translate title text int maxTitleTranslationY = (int) (mFlexibleSpaceImageHeight - mTitleView.getHeight() * scale); int titleTranslationY = maxTitleTranslationY - scrollY; ViewHelper.setTranslationY(mTitleView, titleTranslationY); }
Example #2
Source File: FlexibleSpaceWithImageWithViewPagerTab2Activity.java From Android-ObservableScrollView with Apache License 2.0 | 6 votes |
private void updateFlexibleSpace(float translationY) { ViewHelper.setTranslationY(mInterceptionLayout, translationY); int minOverlayTransitionY = getActionBarSize() - mOverlayView.getHeight(); ViewHelper.setTranslationY(mImageView, ScrollUtils.getFloat(-translationY / 2, minOverlayTransitionY, 0)); // Change alpha of overlay float flexibleRange = mFlexibleSpaceHeight - getActionBarSize(); ViewHelper.setAlpha(mOverlayView, ScrollUtils.getFloat(-translationY / flexibleRange, 0, 1)); // Scale title text float scale = 1 + ScrollUtils.getFloat((flexibleRange + translationY - mTabHeight) / flexibleRange, 0, MAX_TEXT_SCALE_DELTA); setPivotXToTitle(); ViewHelper.setPivotY(mTitleView, 0); ViewHelper.setScaleX(mTitleView, scale); ViewHelper.setScaleY(mTitleView, scale); }
Example #3
Source File: StickyHeaderWebViewActivity.java From Android-ObservableScrollView with Apache License 2.0 | 6 votes |
@Override public void onScrollChanged(int scrollY, boolean firstScroll, boolean dragging) { if (mDragging) { int toolbarHeight = mToolbarView.getHeight(); if (mFirstScroll) { mFirstScroll = false; float currentHeaderTranslationY = ViewHelper.getTranslationY(mHeaderView); if (-toolbarHeight < currentHeaderTranslationY) { mBaseTranslationY = scrollY; } } float headerTranslationY = ScrollUtils.getFloat(-(scrollY - mBaseTranslationY), -toolbarHeight, 0); ViewPropertyAnimator.animate(mHeaderView).cancel(); ViewHelper.setTranslationY(mHeaderView, headerTranslationY); } }
Example #4
Source File: FlexibleSpaceToolbarWebViewActivity.java From Android-ObservableScrollView with Apache License 2.0 | 6 votes |
private void updateFlexibleSpaceText(final int scrollY) { ViewHelper.setTranslationY(mFlexibleSpaceView, -scrollY); int adjustedScrollY = (int) ScrollUtils.getFloat(scrollY, 0, mFlexibleSpaceHeight); // Special logic for WebView. adjustTopMargin(mWebViewContainer, adjustedScrollY <= mFlexibleSpaceHeight ? 0 : mFlexibleSpaceHeight + getActionBarSize()); float maxScale = (float) (mFlexibleSpaceHeight - mToolbarView.getHeight()) / mToolbarView.getHeight(); float scale = maxScale * ((float) mFlexibleSpaceHeight - adjustedScrollY) / mFlexibleSpaceHeight; ViewHelper.setPivotX(mTitleView, 0); ViewHelper.setPivotY(mTitleView, 0); ViewHelper.setScaleX(mTitleView, 1 + scale); ViewHelper.setScaleY(mTitleView, 1 + scale); int maxTitleTranslationY = mToolbarView.getHeight() + mFlexibleSpaceHeight - (int) (mTitleView.getHeight() * (1 + scale)); int titleTranslationY = (int) (maxTitleTranslationY * ((float) mFlexibleSpaceHeight - adjustedScrollY) / mFlexibleSpaceHeight); ViewHelper.setTranslationY(mTitleView, titleTranslationY); }
Example #5
Source File: ParallaxToolbarScrollViewActivity.java From Android-ObservableScrollView with Apache License 2.0 | 6 votes |
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_parallaxtoolbarscrollview); setSupportActionBar((Toolbar) findViewById(R.id.toolbar)); mImageView = findViewById(R.id.image); mToolbarView = findViewById(R.id.toolbar); mToolbarView.setBackgroundColor(ScrollUtils.getColorWithAlpha(0, getResources().getColor(R.color.primary))); mScrollView = (ObservableScrollView) findViewById(R.id.scroll); mScrollView.setScrollViewCallbacks(this); mParallaxImageHeight = getResources().getDimensionPixelSize(R.dimen.parallax_image_height); }
Example #6
Source File: ViewPagerTabListViewFragment.java From Android-ObservableScrollView with Apache License 2.0 | 6 votes |
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_listview, container, false); Activity parentActivity = getActivity(); final ObservableListView listView = (ObservableListView) view.findViewById(R.id.scroll); UiTestUtils.setDummyDataWithHeader(getActivity(), listView, inflater.inflate(R.layout.padding, null)); if (parentActivity instanceof ObservableScrollViewCallbacks) { // Scroll to the specified position after layout Bundle args = getArguments(); if (args != null && args.containsKey(ARG_INITIAL_POSITION)) { final int initialPosition = args.getInt(ARG_INITIAL_POSITION, 0); ScrollUtils.addOnGlobalLayoutListener(listView, new Runnable() { @Override public void run() { // scrollTo() doesn't work, should use setSelection() listView.setSelection(initialPosition); } }); } listView.setScrollViewCallbacks((ObservableScrollViewCallbacks) parentActivity); } return view; }
Example #7
Source File: DetailsActivity.java From Material-Design-Example with Apache License 2.0 | 6 votes |
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.screen_details); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); getSupportActionBar().setDisplayHomeAsUpEnabled(true); mImageView = findViewById(R.id.image); mToolbarView = findViewById(R.id.toolbar); mToolbarView.setBackgroundColor(ScrollUtils.getColorWithAlpha(0, getResources().getColor(R.color.theme_dialer_primary))); mScrollView = (ObservableScrollView) findViewById(R.id.scroll); mScrollView.setScrollViewCallbacks(this); mParallaxImageHeight = getResources().getDimensionPixelSize(R.dimen.drawer_menu_width); }
Example #8
Source File: ViewPagerTabScrollViewFragment.java From Android-ObservableScrollView with Apache License 2.0 | 6 votes |
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_scrollview, container, false); final ObservableScrollView scrollView = (ObservableScrollView) view.findViewById(R.id.scroll); Activity parentActivity = getActivity(); if (parentActivity instanceof ObservableScrollViewCallbacks) { // Scroll to the specified offset after layout Bundle args = getArguments(); if (args != null && args.containsKey(ARG_SCROLL_Y)) { final int scrollY = args.getInt(ARG_SCROLL_Y, 0); ScrollUtils.addOnGlobalLayoutListener(scrollView, new Runnable() { @Override public void run() { scrollView.scrollTo(0, scrollY); } }); } scrollView.setScrollViewCallbacks((ObservableScrollViewCallbacks) parentActivity); } return view; }
Example #9
Source File: StickyHeaderScrollViewActivity.java From Android-ObservableScrollView with Apache License 2.0 | 5 votes |
@Override public void onScrollChanged(int scrollY, boolean firstScroll, boolean dragging) { if (dragging) { int toolbarHeight = mToolbarView.getHeight(); if (firstScroll) { float currentHeaderTranslationY = ViewHelper.getTranslationY(mHeaderView); if (-toolbarHeight < currentHeaderTranslationY) { mBaseTranslationY = scrollY; } } float headerTranslationY = ScrollUtils.getFloat(-(scrollY - mBaseTranslationY), -toolbarHeight, 0); ViewPropertyAnimator.animate(mHeaderView).cancel(); ViewHelper.setTranslationY(mHeaderView, headerTranslationY); } }
Example #10
Source File: ParallaxToolbarListViewActivity.java From Android-ObservableScrollView with Apache License 2.0 | 5 votes |
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_parallaxtoolbarlistview) ; setSupportActionBar((Toolbar) findViewById(R.id.toolbar)); mImageView = findViewById(R.id.image); mToolbarView = findViewById(R.id.toolbar); mToolbarView.setBackgroundColor(ScrollUtils.getColorWithAlpha(0, getResources().getColor(R.color.primary))); mParallaxImageHeight = getResources().getDimensionPixelSize(R.dimen.parallax_image_height); mListView = (ObservableListView) findViewById(R.id.list); mListView.setScrollViewCallbacks(this); // Set padding view for ListView. This is the flexible space. View paddingView = new View(this); AbsListView.LayoutParams lp = new AbsListView.LayoutParams(AbsListView.LayoutParams.MATCH_PARENT, mParallaxImageHeight); paddingView.setLayoutParams(lp); // This is required to disable header's list selector effect paddingView.setClickable(true); mListView.addHeaderView(paddingView); setDummyData(mListView); // mListBackgroundView makes ListView's background except header view. mListBackgroundView = findViewById(R.id.list_background); }
Example #11
Source File: ViewPagerTabScrollViewActivity.java From Android-ObservableScrollView with Apache License 2.0 | 5 votes |
@Override public void onScrollChanged(int scrollY, boolean firstScroll, boolean dragging) { if (dragging) { int toolbarHeight = mToolbarView.getHeight(); float currentHeaderTranslationY = ViewHelper.getTranslationY(mHeaderView); if (firstScroll) { if (-toolbarHeight < currentHeaderTranslationY) { mBaseTranslationY = scrollY; } } float headerTranslationY = ScrollUtils.getFloat(-(scrollY - mBaseTranslationY), -toolbarHeight, 0); ViewPropertyAnimator.animate(mHeaderView).cancel(); ViewHelper.setTranslationY(mHeaderView, headerTranslationY); } }
Example #12
Source File: ViewPagerTabListViewFragment.java From Android-ObservableScrollView with Apache License 2.0 | 5 votes |
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_listview, container, false); Activity parentActivity = getActivity(); final ObservableListView listView = (ObservableListView) view.findViewById(R.id.scroll); setDummyDataWithHeader(listView, inflater.inflate(R.layout.padding, listView, false)); if (parentActivity instanceof ObservableScrollViewCallbacks) { // Scroll to the specified position after layout Bundle args = getArguments(); if (args != null && args.containsKey(ARG_INITIAL_POSITION)) { final int initialPosition = args.getInt(ARG_INITIAL_POSITION, 0); ScrollUtils.addOnGlobalLayoutListener(listView, new Runnable() { @Override public void run() { // scrollTo() doesn't work, should use setSelection() listView.setSelection(initialPosition); } }); } // TouchInterceptionViewGroup should be a parent view other than ViewPager. // This is a workaround for the issue #117: // https://github.com/ksoichiro/Android-ObservableScrollView/issues/117 listView.setTouchInterceptionViewGroup((ViewGroup) parentActivity.findViewById(R.id.root)); listView.setScrollViewCallbacks((ObservableScrollViewCallbacks) parentActivity); } return view; }
Example #13
Source File: ViewPagerTabFragmentParentFragment.java From Android-ObservableScrollView with Apache License 2.0 | 5 votes |
@Override public void onMoveMotionEvent(MotionEvent ev, float diffX, float diffY) { View toolbarView = getActivity().findViewById(R.id.toolbar); float translationY = ScrollUtils.getFloat(ViewHelper.getTranslationY(mInterceptionLayout) + diffY, -toolbarView.getHeight(), 0); ViewHelper.setTranslationY(mInterceptionLayout, translationY); ViewHelper.setTranslationY(toolbarView, translationY); if (translationY < 0) { FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) mInterceptionLayout.getLayoutParams(); lp.height = (int) (-translationY + getScreenHeight()); mInterceptionLayout.requestLayout(); } }
Example #14
Source File: ViewPagerTabListViewActivity.java From Android-ObservableScrollView with Apache License 2.0 | 5 votes |
@Override public void onScrollChanged(int scrollY, boolean firstScroll, boolean dragging) { if (dragging) { int toolbarHeight = mToolbarView.getHeight(); float currentHeaderTranslationY = ViewHelper.getTranslationY(mHeaderView); if (firstScroll) { if (-toolbarHeight < currentHeaderTranslationY) { mBaseTranslationY = scrollY; } } float headerTranslationY = ScrollUtils.getFloat(-(scrollY - mBaseTranslationY), -toolbarHeight, 0); ViewPropertyAnimator.animate(mHeaderView).cancel(); ViewHelper.setTranslationY(mHeaderView, headerTranslationY); } }
Example #15
Source File: ViewPagerTabScrollViewFragment.java From Android-ObservableScrollView with Apache License 2.0 | 5 votes |
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_scrollview, container, false); final ObservableScrollView scrollView = (ObservableScrollView) view.findViewById(R.id.scroll); Activity parentActivity = getActivity(); if (parentActivity instanceof ObservableScrollViewCallbacks) { // Scroll to the specified offset after layout Bundle args = getArguments(); if (args != null && args.containsKey(ARG_SCROLL_Y)) { final int scrollY = args.getInt(ARG_SCROLL_Y, 0); ScrollUtils.addOnGlobalLayoutListener(scrollView, new Runnable() { @Override public void run() { scrollView.scrollTo(0, scrollY); } }); } // TouchInterceptionViewGroup should be a parent view other than ViewPager. // This is a workaround for the issue #117: // https://github.com/ksoichiro/Android-ObservableScrollView/issues/117 scrollView.setTouchInterceptionViewGroup((ViewGroup) parentActivity.findViewById(R.id.root)); scrollView.setScrollViewCallbacks((ObservableScrollViewCallbacks) parentActivity); } return view; }
Example #16
Source File: ViewPagerTabActivity.java From Android-ObservableScrollView with Apache License 2.0 | 5 votes |
@Override public void onScrollChanged(int scrollY, boolean firstScroll, boolean dragging) { if (dragging) { int toolbarHeight = mToolbarView.getHeight(); float currentHeaderTranslationY = ViewHelper.getTranslationY(mHeaderView); if (firstScroll) { if (-toolbarHeight < currentHeaderTranslationY) { mBaseTranslationY = scrollY; } } float headerTranslationY = ScrollUtils.getFloat(-(scrollY - mBaseTranslationY), -toolbarHeight, 0); ViewPropertyAnimator.animate(mHeaderView).cancel(); ViewHelper.setTranslationY(mHeaderView, headerTranslationY); } }
Example #17
Source File: StickyHeaderRecyclerViewActivity.java From Android-ObservableScrollView with Apache License 2.0 | 5 votes |
@Override public void onScrollChanged(int scrollY, boolean firstScroll, boolean dragging) { if (dragging) { int toolbarHeight = mToolbarView.getHeight(); if (firstScroll) { float currentHeaderTranslationY = ViewHelper.getTranslationY(mHeaderView); if (-toolbarHeight < currentHeaderTranslationY) { mBaseTranslationY = scrollY; } } float headerTranslationY = ScrollUtils.getFloat(-(scrollY - mBaseTranslationY), -toolbarHeight, 0); ViewPropertyAnimator.animate(mHeaderView).cancel(); ViewHelper.setTranslationY(mHeaderView, headerTranslationY); } }
Example #18
Source File: MainActivity.java From ExpressHelper with GNU General Public License v3.0 | 5 votes |
@Override public void onScrollChanged(int scrollY, boolean firstScroll, boolean dragging) { if (dragging) { int toolbarHeight = mToolbar.getHeight(); float currentHeaderTranslationY = ViewHelper.getTranslationY(mHeaderView); if (firstScroll) { if (-toolbarHeight < currentHeaderTranslationY) { mBaseTranslationY = scrollY; } } float headerTranslationY = ScrollUtils.getFloat(-(scrollY - mBaseTranslationY), -toolbarHeight, 0); ViewPropertyAnimator.animate(mHeaderView).cancel(); ViewHelper.setTranslationY(mHeaderView, headerTranslationY); } }
Example #19
Source File: FlexibleSpaceWithImageWithViewPagerTab2Activity.java From Android-ObservableScrollView with Apache License 2.0 | 5 votes |
@Override public void onMoveMotionEvent(MotionEvent ev, float diffX, float diffY) { int flexibleSpace = mFlexibleSpaceHeight - mTabHeight; float translationY = ScrollUtils.getFloat(ViewHelper.getTranslationY(mInterceptionLayout) + diffY, -flexibleSpace, 0); MotionEvent e = MotionEvent.obtainNoHistory(ev); e.offsetLocation(0, translationY - mBaseTranslationY); mVelocityTracker.addMovement(e); updateFlexibleSpace(translationY); }
Example #20
Source File: FlexibleSpaceWithImageRecyclerViewFragment.java From Android-ObservableScrollView with Apache License 2.0 | 5 votes |
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_flexiblespacewithimagerecyclerview, container, false); final ObservableRecyclerView recyclerView = (ObservableRecyclerView) view.findViewById(R.id.scroll); recyclerView.setLayoutManager(new LinearLayoutManager(getActivity())); recyclerView.setHasFixedSize(false); final View headerView = LayoutInflater.from(getActivity()).inflate(R.layout.recycler_header, null); final int flexibleSpaceImageHeight = getResources().getDimensionPixelSize(R.dimen.flexible_space_image_height); headerView.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, flexibleSpaceImageHeight)); setDummyDataWithHeader(recyclerView, headerView); // TouchInterceptionViewGroup should be a parent view other than ViewPager. // This is a workaround for the issue #117: // https://github.com/ksoichiro/Android-ObservableScrollView/issues/117 recyclerView.setTouchInterceptionViewGroup((ViewGroup) view.findViewById(R.id.fragment_root)); // Scroll to the specified offset after layout Bundle args = getArguments(); if (args != null && args.containsKey(ARG_SCROLL_Y)) { final int scrollY = args.getInt(ARG_SCROLL_Y, 0); ScrollUtils.addOnGlobalLayoutListener(recyclerView, new Runnable() { @Override public void run() { int offset = scrollY % flexibleSpaceImageHeight; RecyclerView.LayoutManager lm = recyclerView.getLayoutManager(); if (lm != null && lm instanceof LinearLayoutManager) { ((LinearLayoutManager) lm).scrollToPositionWithOffset(0, -offset); } } }); updateFlexibleSpace(scrollY, view); } else { updateFlexibleSpace(0, view); } recyclerView.setScrollViewCallbacks(this); return view; }
Example #21
Source File: ParallaxToolbarListViewActivity.java From Android-ObservableScrollView with Apache License 2.0 | 5 votes |
@Override public void onScrollChanged(int scrollY, boolean firstScroll, boolean dragging) { int baseColor = getResources().getColor(R.color.primary); float alpha = Math.min(1, (float) scrollY / mParallaxImageHeight); mToolbarView.setBackgroundColor(ScrollUtils.getColorWithAlpha(alpha, baseColor)); ViewHelper.setTranslationY(mImageView, -scrollY / 2); // Translate list background ViewHelper.setTranslationY(mListBackgroundView, Math.max(0, -scrollY + mParallaxImageHeight)); }
Example #22
Source File: FlexibleSpaceToolbarScrollViewActivity.java From Android-ObservableScrollView with Apache License 2.0 | 5 votes |
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_flexiblespacetoolbarscrollview); setSupportActionBar((Toolbar) findViewById(R.id.toolbar)); ActionBar ab = getSupportActionBar(); if (ab != null) { getSupportActionBar().setDisplayHomeAsUpEnabled(true); } mFlexibleSpaceView = findViewById(R.id.flexible_space); mTitleView = (TextView) findViewById(R.id.title); mTitleView.setText(getTitle()); setTitle(null); mToolbarView = findViewById(R.id.toolbar); final ObservableScrollView scrollView = (ObservableScrollView) findViewById(R.id.scroll); scrollView.setScrollViewCallbacks(this); mFlexibleSpaceHeight = getResources().getDimensionPixelSize(R.dimen.flexible_space_height); int flexibleSpaceAndToolbarHeight = mFlexibleSpaceHeight + getActionBarSize(); findViewById(R.id.body).setPadding(0, flexibleSpaceAndToolbarHeight, 0, 0); mFlexibleSpaceView.getLayoutParams().height = flexibleSpaceAndToolbarHeight; ScrollUtils.addOnGlobalLayoutListener(mTitleView, new Runnable() { @Override public void run() { updateFlexibleSpaceText(scrollView.getCurrentScrollY()); } }); }
Example #23
Source File: FlexibleSpaceToolbarScrollViewActivity.java From Android-ObservableScrollView with Apache License 2.0 | 5 votes |
private void updateFlexibleSpaceText(final int scrollY) { ViewHelper.setTranslationY(mFlexibleSpaceView, -scrollY); int adjustedScrollY = (int) ScrollUtils.getFloat(scrollY, 0, mFlexibleSpaceHeight); float maxScale = (float) (mFlexibleSpaceHeight - mToolbarView.getHeight()) / mToolbarView.getHeight(); float scale = maxScale * ((float) mFlexibleSpaceHeight - adjustedScrollY) / mFlexibleSpaceHeight; ViewHelper.setPivotX(mTitleView, 0); ViewHelper.setPivotY(mTitleView, 0); ViewHelper.setScaleX(mTitleView, 1 + scale); ViewHelper.setScaleY(mTitleView, 1 + scale); int maxTitleTranslationY = mToolbarView.getHeight() + mFlexibleSpaceHeight - (int) (mTitleView.getHeight() * (1 + scale)); int titleTranslationY = (int) (maxTitleTranslationY * ((float) mFlexibleSpaceHeight - adjustedScrollY) / mFlexibleSpaceHeight); ViewHelper.setTranslationY(mTitleView, titleTranslationY); }
Example #24
Source File: FlexibleSpaceWithImageScrollViewFragment.java From Android-ObservableScrollView with Apache License 2.0 | 5 votes |
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_flexiblespacewithimagescrollview, container, false); final ObservableScrollView scrollView = (ObservableScrollView) view.findViewById(R.id.scroll); // TouchInterceptionViewGroup should be a parent view other than ViewPager. // This is a workaround for the issue #117: // https://github.com/ksoichiro/Android-ObservableScrollView/issues/117 scrollView.setTouchInterceptionViewGroup((ViewGroup) view.findViewById(R.id.fragment_root)); // Scroll to the specified offset after layout Bundle args = getArguments(); if (args != null && args.containsKey(ARG_SCROLL_Y)) { final int scrollY = args.getInt(ARG_SCROLL_Y, 0); ScrollUtils.addOnGlobalLayoutListener(scrollView, new Runnable() { @Override public void run() { scrollView.scrollTo(0, scrollY); } }); updateFlexibleSpace(scrollY, view); } else { updateFlexibleSpace(0, view); } scrollView.setScrollViewCallbacks(this); return view; }
Example #25
Source File: ParallaxToolbarScrollViewActivity.java From Android-ObservableScrollView with Apache License 2.0 | 5 votes |
@Override public void onScrollChanged(int scrollY, boolean firstScroll, boolean dragging) { int baseColor = getResources().getColor(R.color.primary); float alpha = Math.min(1, (float) scrollY / mParallaxImageHeight); mToolbarView.setBackgroundColor(ScrollUtils.getColorWithAlpha(alpha, baseColor)); ViewHelper.setTranslationY(mImageView, scrollY / 2); }
Example #26
Source File: ViewPagerTab2Activity.java From Android-ObservableScrollView with Apache License 2.0 | 5 votes |
@Override public void onMoveMotionEvent(MotionEvent ev, float diffX, float diffY) { float translationY = ScrollUtils.getFloat(ViewHelper.getTranslationY(mInterceptionLayout) + diffY, -mToolbarView.getHeight(), 0); ViewHelper.setTranslationY(mInterceptionLayout, translationY); if (translationY < 0) { FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) mInterceptionLayout.getLayoutParams(); lp.height = (int) (-translationY + getScreenHeight()); mInterceptionLayout.requestLayout(); } }
Example #27
Source File: ViewPagerTabRecyclerViewFragment.java From Android-ObservableScrollView with Apache License 2.0 | 5 votes |
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_recyclerview, container, false); Activity parentActivity = getActivity(); final ObservableRecyclerView recyclerView = (ObservableRecyclerView) view.findViewById(R.id.scroll); recyclerView.setLayoutManager(new LinearLayoutManager(parentActivity)); recyclerView.setHasFixedSize(false); View headerView = LayoutInflater.from(parentActivity).inflate(R.layout.padding, null); UiTestUtils.setDummyDataWithHeader(getActivity(), recyclerView, headerView); if (parentActivity instanceof ObservableScrollViewCallbacks) { // Scroll to the specified offset after layout Bundle args = getArguments(); if (args != null && args.containsKey(ARG_INITIAL_POSITION)) { final int initialPosition = args.getInt(ARG_INITIAL_POSITION, 0); ScrollUtils.addOnGlobalLayoutListener(recyclerView, new Runnable() { @Override public void run() { recyclerView.scrollVerticallyToPosition(initialPosition); } }); } recyclerView.setScrollViewCallbacks((ObservableScrollViewCallbacks) parentActivity); } return view; }
Example #28
Source File: ViewPagerTabActivity.java From Android-ObservableScrollView with Apache License 2.0 | 5 votes |
@Override public void onScrollChanged(int scrollY, boolean firstScroll, boolean dragging) { if (dragging) { int toolbarHeight = mToolbarView.getHeight(); float currentHeaderTranslationY = ViewHelper.getTranslationY(mHeaderView); if (firstScroll) { if (-toolbarHeight < currentHeaderTranslationY) { mBaseTranslationY = scrollY; } } float headerTranslationY = ScrollUtils.getFloat(-(scrollY - mBaseTranslationY), -toolbarHeight, 0); ViewPropertyAnimator.animate(mHeaderView).cancel(); ViewHelper.setTranslationY(mHeaderView, headerTranslationY); } }
Example #29
Source File: ListViewScrollFromBottomActivity.java From Android-ObservableScrollView with Apache License 2.0 | 5 votes |
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); final ObservableListView scrollable = (ObservableListView) findViewById(R.id.scrollable); ScrollUtils.addOnGlobalLayoutListener(scrollable, new Runnable() { @Override public void run() { int count = scrollable.getAdapter().getCount() - 1; int position = count == 0 ? 1 : count > 0 ? count : 0; scrollable.smoothScrollToPosition(position); scrollable.setSelection(position); } }); }
Example #30
Source File: RecyclerViewScrollFromBottomActivity.java From Android-ObservableScrollView with Apache License 2.0 | 5 votes |
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); final ObservableRecyclerView scrollable = (ObservableRecyclerView) findViewById(R.id.scrollable); ScrollUtils.addOnGlobalLayoutListener(scrollable, new Runnable() { @Override public void run() { int count = scrollable.getAdapter().getItemCount() - 1; int position = count == 0 ? 1 : count > 0 ? count : 0; scrollable.scrollToPosition(position); } }); }