All Projects → trafi → Anchor Bottom Sheet Behavior

trafi / Anchor Bottom Sheet Behavior

Licence: apache-2.0
BottomSheet behavior with collapsed, expanded and anchor states

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Anchor Bottom Sheet Behavior

BottomSheetBehavior
BottomSheetBehavior is an android library extracted from the Google I/O 2018 application source code.
Stars: ✭ 12 (-91.37%)
Mutual labels:  bottom-sheet
Dialogplus
Advanced dialog solution for android
Stars: ✭ 4,936 (+3451.08%)
Mutual labels:  bottom-sheet
React Native Bottomsheet Reanimated
React Native bottom sheet with fully native 60 FPS animations and awesome user experience
Stars: ✭ 80 (-42.45%)
Mutual labels:  bottom-sheet
nativescript-vue-multi-drawer
A NativeScript-Vue component for creating multiple side drawers (4 sides supported)
Stars: ✭ 45 (-67.63%)
Mutual labels:  bottom-sheet
Rn Swipeable Panel
Zero dependency swipeable bottom panel for React Native 📱
Stars: ✭ 415 (+198.56%)
Mutual labels:  bottom-sheet
React Native Raw Bottom Sheet
Add Your Own Component To Bottom Sheet Whatever You Want (Android and iOS)
Stars: ✭ 771 (+454.68%)
Mutual labels:  bottom-sheet
Stpopup
STPopup provides STPopupController, which works just like UINavigationController in popup style, for both iPhone and iPad. It's written in Objective-C and compatible with Swift.
Stars: ✭ 2,517 (+1710.79%)
Mutual labels:  bottom-sheet
Sweetcurtain
A framework that provides CurtainController. CurtainController is a container view controller that implements a content-curtain interface. You can find a similar implementation in applications like Apple Maps, Find My, Stocks, etc. Someone calls it "Pull Up" or "Bottom Sheet".
Stars: ✭ 109 (-21.58%)
Mutual labels:  bottom-sheet
Sliding Panel
Android sliding panel that is part of the view hierarchy, not above it.
Stars: ✭ 433 (+211.51%)
Mutual labels:  bottom-sheet
React Native Scroll Bottom Sheet
Cross platform scrollable bottom sheet with virtualisation support, native animations at 60 FPS and fully implemented in JS land 🔥
Stars: ✭ 1,226 (+782.01%)
Mutual labels:  bottom-sheet
NBBottomSheet
An iOS library that presents a bottom sheet using Auto Layout.
Stars: ✭ 60 (-56.83%)
Mutual labels:  bottom-sheet
React Native Actions Sheet
A Cross Platform(Android & iOS) ActionSheet with a flexible api, native performance and zero dependency code for react native. Create anything you want inside ActionSheet.
Stars: ✭ 412 (+196.4%)
Mutual labels:  bottom-sheet
React Native Js Bottom Sheet
A React Native implementation of Android's bottom sheet
Stars: ✭ 29 (-79.14%)
Mutual labels:  bottom-sheet
vue-bottom-sheet
🔥 A nice clean and touch-friendly bottom sheet component based on Vue.js and Hammer.js
Stars: ✭ 105 (-24.46%)
Mutual labels:  bottom-sheet
Stickytabbarviewcontroller
Sticky and Collapsible View on top of tab bar
Stars: ✭ 82 (-41.01%)
Mutual labels:  bottom-sheet
react-spring-bottom-sheet
Accessible ♿️, Delightful ✨, & Fast 🚀
Stars: ✭ 604 (+334.53%)
Mutual labels:  bottom-sheet
Bottomdialogs
An Android library that shows a customizable Material-based bottom sheet. API 11+ required.
Stars: ✭ 624 (+348.92%)
Mutual labels:  bottom-sheet
React Native Bottom Sheet
A performant interactive bottom sheet with fully configurable options 🚀
Stars: ✭ 2,695 (+1838.85%)
Mutual labels:  bottom-sheet
Bottomify Navigation View
A nice looking Spotify like bottom navigation view
Stars: ✭ 97 (-30.22%)
Mutual labels:  bottom-sheet
Bottomsheetpickers
Third-party date and time pickers for Android.
Stars: ✭ 1,099 (+690.65%)
Mutual labels:  bottom-sheet

AnchorBottomSheetBehavior

An interaction behavior plugin for a child view of CoordinatorLayout to make it work as a bottom sheet with collapsed, expanded and anchored states. Looking for iOS?

AnchorBottomSheetBehavior in action

Usage

Just add the attribute below to the View you want to act as the anchorable bottom sheet.

app:layout_behavior="com.trafi.anchorbottomsheetbehavior.AnchorBottomSheetBehavior"

In a layout file, you could specify it like this.

<android.support.design.widget.CoordinatorLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    
    <!-- background content -->

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@android:color/black"
        app:layout_behavior="com.trafi.anchorbottomsheetbehavior.AnchorBottomSheetBehavior">

        <!-- bottom sheet content -->

    </FrameLayout>
        
</android.support.design.widget.CoordinatorLayout>

Or try out the included sample.

Installation

// top-level build.gradle
allprojects {
    repositories {
        // ..
        maven { url 'https://jitpack.io' }
    }
}

// module build.gradle
dependencies {
    // ..
    implementation 'com.trafi:anchor-bottom-sheet-behavior:0.13-alpha'
}

Advanced usage

<FrameLayout
    android:id="@+id/bottom_sheet"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/black"
    app:behavior_anchorOffset="320dp"
    app:behavior_peekHeight="192dp"
    app:behavior_defaultState="collapsed"
    app:layout_behavior="com.trafi.anchorbottomsheetbehavior.AnchorBottomSheetBehavior">
val behavior = AnchorBottomSheetBehavior.from(bottom_sheet)
behavior.state = AnchorBottomSheetBehavior.STATE_EXPANDED
behavior.allowUserDragging = false
behavior.anchorOffset = 200
behavior.peekHeight = 100
behavior.addBottomSheetCallback(object : AnchorBottomSheetBehavior.BottomSheetCallback() {
    override fun onSlide(view: View, offset: Float) {
        // offset == 0f when bottom sheet is collapsed
        // offset == 1f when bottom sheet is expanded
    }
    
    override fun onStateChanged(view: View, oldState: Int, newState: Int) {
        when (newState) {
            STATE_COLLAPSED -> TODO()
            STATE_ANCHORED -> TODO()
            STATE_EXPANDED -> TODO()
        }
    }
})
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].