kalehv
8/11/2016 - 1:04 AM

Parallax RecyclerViewScrolling

Parallax RecyclerViewScrolling

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    final View parallaxAppBar = rootView.findViewById(R.id.parallax_appbar);
    if (parallaxAppBar != null) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
            recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
                @TargetApi(Build.VERSION_CODES.HONEYCOMB)
                @Override
                public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
                    super.onScrolled(recyclerView, dx, dy);
                    int max = parallaxAppBar.getHeight();
                    if (dy > 0) {
                        parallaxAppBar.setTranslationY(Math.max(-max, parallaxAppBar.getTranslationY() - dy / 2));
                    } else {
                        parallaxAppBar.setTranslationY(Math.min(0, parallaxAppBar.getTranslationY() - dy / 2));
                    }
                }
            });
        }
    }
}

@Override
public void onDestroy() {
    super.onDestroy();
    if (recyclerView != null) {
        recyclerView.clearOnScrollListeners();
    }
}