saket/InboxRecyclerView
saket/InboxRecyclerView has 1,958 GitHub stars and 115 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-08 00:08 UTC. Last push 2021-08-26.
Build expandable descendant navigation, inspired by Google Inbox
Measured star growth
- in 24h
- 0
- in 7 days
- Update delayed
- in 15 days
- Update delayed
- in 1 month
- Update delayed
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
OriginalInboxRecyclerView is a library for building expandable descendant navigation inspired by Google Inbox and Reply, and is an easy drop-in into existing projects. You can take a look at the sample app for best practices or download its APK for trying it out on your phone. If you're interested in learning how it was created, here's an in-depth blog post.
implementation 'me.saket:inboxrecyclerview:3.0.0'
Usage
Layout
<me.saket.inboxrecyclerview.InboxRecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent" />
<me.saket.inboxrecyclerview.page.ExpandablePageLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/same_as_your_list_items">
<!--
Your expandable content will live here. Make sure that
your page has a higher z-index than the list by giving
it a higher view position or a higher elevation.
-->
</me.saket.inboxrecyclerview.page.ExpandablePageLayout>
Expanding content
recyclerView.itemExpandAnimator = ItemExpandAnimator.scale() // or split() / none()
recyclerView.dimPainter = DimPainter.listAndPage(Color.WHITE, alpha = 0.65f)
recyclerView.expandablePage = findViewById(...).also {
it.pushParentToolbarOnExpand(toolbar)
it.addOnPullListener(PageCollapseEligibilityHapticFeedback(it))
}
recyclerViewAdapter.onItemClick = { clickedItem ->
// Load or update your content inside the page here.
recyclerView.expandItem(clickedItem.adapterId)
}
How do I…
- customize item expand animations?
- control the pull-to-collapse gesture?
- change background dimming?
- listen to state changes?
- expand items without using
Longbased adapter IDs?
Pull collapsible activities
To maintain consistency across your whole app, a PullCollapsibleActivity is also included that brings the same animations and gesture to activities with little effort.
Step 1. Extend PullCollapsibleActivity.
Step 2. Add these attributes to the activity’s theme:
<item name="android:windowIsTranslucent">true</item>
<item name="android:colorBackgroundCacheHint">@null</item>
License
Copyright 2018 Saket Narayan.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Explore related projects
codecrafters-io/build-your-own-x
Master programming by recreating your favorite technologies from scratch.
560,927 starspublic-apis/public-apis
A collective list of free APIs
497,176 starsmorluto/rea
Reverse engineer anything with agents, from app behavior down to native binaries.
442,406 starsopenclaw/openclaw
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
394,177 stars