InboxRecyclerView

Build expandable descendant navigation, inspired by Google Inbox

Subscribe to updates I use InboxRecyclerView


Statistics on InboxRecyclerView

Number of watchers on Github 1039
Number of open issues 3
Average time to close an issue 9 days
Main language Kotlin
Average time to merge a PR about 7 hours
Open pull requests 0+
Closed pull requests 1+
Last commit about 2 months ago
Repo Created 4 months ago
Repo Last Updated 17 days ago
Size 8.33 MB
Organization / Authorsaket
Latest Releasev1.0.0-rc1
Contributors1
Page Updated
Do you use InboxRecyclerView? Leave a review!
View open issues (3)
View InboxRecyclerView activity
View TODOs for InboxRecyclerView (2)
View on github
Fresh, new opensource launches 🚀🚀🚀
Trendy new open source projects in your inbox! View examples

Subscribe to our mailing list

Evaluating InboxRecyclerView for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)

InboxRecyclerView is a library for building expandable descendant navigation, inspired by Google Inbox and Reply. If you're interested in learning how it was created, here's a detailed blog post.

implementation 'me.saket:inboxrecyclerview:1.0.0-rc1'

FYI, InboxRecyclerView has a dependency on androidx. If you haven't migrated from the support library already, this would be a good opportunity.

Usage

InboxRecyclerView can be dropped in existing projects without requiring any effort. You can take a look at the sample app for best practices or download its APK for trying it out on your phone.

Layout

<me.saket.inboxrecyclerview.InboxRecyclerView
  android:layout_width="match_parent"
  android:layout_height="match_parent" />

<!--
  This is where your expandable content will be present. One
  way of using it would be to add a Fragment inside the layout
  and update it when any list item is clicked.

  It's recommended that the content page has a higher z-index
  than the list. This can be achieved by either giving it a
  higher view position or a higher elevation.
-->
<me.saket.inboxrecyclerview.page.ExpandablePageLayout
  android:layout_width="match_parent"
  android:layout_height="match_parent" />

Expanding content

recyclerView.setExpandablePage(contentPage)

recyclerViewAdapter.itemClickListener = { clickedItem ->
  expandableFragment.loadContent(clickedItem)
  recyclerView.expandItem(clickedItem.adapterId)
}

How do I

Pull collapsible activities

To maintain consistency across the whole app, this library also includes a PullCollapsibleActivity that brings the same animations and gesture to activities with little effort.

Step 1. Extend PullCollapsibleActivity.

Step 2. Add these attributes to the activitys 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.
InboxRecyclerView open issues Ask a question     (View All Issues)
  • 3 months Strange animation
  • 3 months Support nested scrolling in ExpandablePageLayout
  • 3 months RelativeLayout???
InboxRecyclerView list of languages used
InboxRecyclerView latest release notes
v1.0.0-rc1 v1.0.0-rc1

This is a major release and I'm fairly confident that InboxRecyclerView is now ready for stable consumption.

  • Fixed a bug that was causing item change animations to get canceled immediately (354e5c1)
  • Fixed two memory leaks with InboxRecyclerView and ExpandablePageLayout. (f3ca4b0, 0b80ec6)
  • Exposed companion functions in ItemExpandAnimator and TintPainter as Java static functions (b8329fb)
v1.0.0-beta3 v1.0.0-beta3
  • Fixed a bug that was causing InboxRecyclerView items to stay focused even their content had collapsed
v1.0.0-beta2 v1.0.0-beta2
  • Removed the restriction for positioning ExpandablePageLayout at a higher z-index than InboxRecyclerView
  • Set up publishing of javadocs and sources. Thanks @hzsweers!
  • Specified the dependency on androidx explicitly in readme
Other projects in Kotlin