All Types

me.saket.inboxrecyclerview.page.BaseExpandablePageLayout

Animating change in dimensions by changing the actual width and height is expensive. This layout animates change in dimensions by clipping visible bounds instead.

me.saket.inboxrecyclerview.dimming.CompleteListTintPainter

Draws a tint on the entire InboxRecyclerView. Unlike UncoveredAreaTintPainter, this requires the page to have its own background, but is a safer option because it does not involve any coordinate calculations. Maths is hard.

me.saket.inboxrecyclerview.page.ExpandablePageLayout

An expandable / collapsible layout for use with a InboxRecyclerView.

me.saket.inboxrecyclerview.InboxRecyclerView

A RecyclerView where items can expand and collapse to and from an ExpandablePageLayout.

me.saket.inboxrecyclerview.page.InterceptResult
me.saket.inboxrecyclerview.animation.ItemExpandAnimator

Controls how InboxRecyclerView items are animated when its page is moving. To create a custom animator, extend this and override onPageMove.

me.saket.inboxrecyclerview.page.OnPullToCollapseInterceptor

Called once every time a vertical scroll gesture is registered on ExpandablePageLayout. When intercepted, all touch events until the finger is lifted will be ignored. This is useful when nested (vertically) scrollable layouts are also present inside the page.

me.saket.inboxrecyclerview.page.PageStateChangeCallbacks

Implement this to receive state callbacks for ExpandablePageLayout.

me.saket.inboxrecyclerview.PullCollapsibleActivity

An Activity that can be dismissed by pulling it vertically. Requires these these properties to be present in the Activity theme:

me.saket.inboxrecyclerview.page.PullToCollapseListener
me.saket.inboxrecyclerview.ScrollSuppressibleRecyclerView

Freezing layout using setLayoutFrozen isn't sufficient for blocking programmatic scrolls i.e., scrolls not initiated by the user. These scrolls are either requested by the app or by RV when a child View requests focus.

me.saket.inboxrecyclerview.page.SimpleOnPullListener

Empty implementations of PullToCollapseListener.OnPullListener. This way, any custom listener that cares only about a subset of the methods of this listener can subclass this adapter class instead of implementing the interface directly.

me.saket.inboxrecyclerview.page.SimplePageStateChangeCallbacks

Empty implementations of PageStateChangeCallbacks. This way, any custom listener that cares only about a subset of the methods of this listener can subclass this adapter class instead of implementing the interface directly.

me.saket.inboxrecyclerview.animation.SplitExpandAnimator

When the page is expanding, this pushes all RecyclerView items out of the Window. The expanding item is pushed to align with the top edge, while the items above it are pushed out of the window towards the top and the rest towards the bottom.

me.saket.inboxrecyclerview.page.StandaloneExpandablePageLayout

Standalone because this page can live without an InboxRecyclerView.

me.saket.inboxrecyclerview.dimming.TintPainter

Draws a tint on InboxRecyclerView rows while it's covered by ExpandablePageLayout.

me.saket.inboxrecyclerview.dimming.UncoveredAreaTintPainter

Draws a tint on InboxRecyclerView only in the area that's not covered by its page. This allows the page content to not have another background of its own, thus reducing overdraw by a level.

android.view.View (extensions in package me.saket.inboxrecyclerview)
android.view.ViewPropertyAnimator (extensions in package me.saket.inboxrecyclerview)