Search in sources :

Example 1 with FadeInDownItemAnimator

use of eu.davidea.samples.flexibleadapter.animators.FadeInDownItemAnimator in project FlexibleAdapter by davideas.

the class FragmentEndlessScrolling method initializeRecyclerView.

private void initializeRecyclerView(Bundle savedInstanceState) {
    // Initialize Adapter and RecyclerView
    // ExampleAdapter makes use of stableIds, I strongly suggest to implement 'item.hashCode()'
    FlexibleAdapter.useTag("EndlessScrollingAdapter");
    if (savedInstanceState != null) {
        mAdapter = new ExampleAdapter(DatabaseService.getInstance().getDatabaseList(), getActivity());
    } else {
        mAdapter = new ExampleAdapter(null, getActivity());
    }
    mAdapter.setAutoScrollOnExpand(true).setNotifyMoveOfFilteredItems(// When true, filtering on big list is very slow, not in this case!
    true).setNotifyChangeOfUnfilteredItems(// true by default
    true).setAnimationOnForwardScrolling(DatabaseConfiguration.animateOnForwardScrolling).setAnimationOnReverseScrolling(true);
    mRecyclerView = getView().findViewById(R.id.recycler_view);
    mRecyclerView.setLayoutManager(createNewLinearLayoutManager());
    mRecyclerView.setAdapter(mAdapter);
    // Size of RV will not change
    mRecyclerView.setHasFixedSize(true);
    // NOTE: Use the custom FadeInDownAnimator for ALL notifications for ALL items,
    // but ScrollableFooterItem implements AnimatedViewHolder with a unique animation: SlideInUp!
    mRecyclerView.setItemAnimator(new FadeInDownItemAnimator());
    // Add FastScroll to the RecyclerView, after the Adapter has been attached the RecyclerView!!!
    FastScroller fastScroller = getView().findViewById(R.id.fast_scroller);
    fastScroller.addOnScrollStateChangeListener((MainActivity) getActivity());
    mAdapter.setFastScroller(fastScroller);
    // New empty views handling, to set after FastScroller
    EmptyViewHelper.create(mAdapter, getView().findViewById(R.id.empty_view), getView().findViewById(R.id.filter_view));
    // Enable long press to drag items
    mAdapter.setLongPressDragEnabled(true).setHandleDragEnabled(// Enable drag using handle view
    true).setSwipeEnabled(// Enable swipe items
    true);
    SwipeRefreshLayout swipeRefreshLayout = getView().findViewById(R.id.swipeRefreshLayout);
    swipeRefreshLayout.setEnabled(true);
    mListener.onFragmentChange(swipeRefreshLayout, mRecyclerView, Mode.IDLE);
    // EndlessScrollListener - OnLoadMore (v5.0.0)
    // To call only if the list is empty
    mAdapter.setLoadingMoreAtStartUp(savedInstanceState == null).setEndlessScrollThreshold(// Default=1
    20).setEndlessScrollListener(this, mProgressItem).setTopEndless(false);
    // Add 1 Header item
    ScrollableLayoutItem scrollHeader = new ScrollableLayoutItem("SLI");
    scrollHeader.setTitle("Endless Scrolling");
    scrollHeader.setSubtitle("...with ScrollableHeaderItem");
    mAdapter.addScrollableHeader(scrollHeader);
}
Also used : FadeInDownItemAnimator(eu.davidea.samples.flexibleadapter.animators.FadeInDownItemAnimator) ScrollableLayoutItem(eu.davidea.samples.flexibleadapter.items.ScrollableLayoutItem) FastScroller(eu.davidea.fastscroller.FastScroller) ExampleAdapter(eu.davidea.samples.flexibleadapter.ExampleAdapter) SwipeRefreshLayout(androidx.swiperefreshlayout.widget.SwipeRefreshLayout)

Aggregations

SwipeRefreshLayout (androidx.swiperefreshlayout.widget.SwipeRefreshLayout)1 FastScroller (eu.davidea.fastscroller.FastScroller)1 ExampleAdapter (eu.davidea.samples.flexibleadapter.ExampleAdapter)1 FadeInDownItemAnimator (eu.davidea.samples.flexibleadapter.animators.FadeInDownItemAnimator)1 ScrollableLayoutItem (eu.davidea.samples.flexibleadapter.items.ScrollableLayoutItem)1