Skip to content

You can create awesome menus with bottom sheet experience in a few lines

Notifications You must be signed in to change notification settings

mazenrashed/BottomSheetMenu

Repository files navigation

BottomSheetMenu

You can create awesome menus with bottom sheet experience in a few lines

Add the JitPack repository to your build file

allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}

Add dependency

dependencies {
    implementation 'com.github.mazenrashed:BottomSheetMenu:${LAST_VERSION}'
}

How to use

Create a menu

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/option1"
        android:icon="@drawable/ic_baseline_alarm_off_24"
        android:title="Turn alarm on" />
    <item
        android:id="@+id/option2"
        android:icon="@drawable/ic_baseline_alarm_on_24"
        android:title="Turn alarm off" />
</menu>

Use BottomSheetMenu builder

val bottomSheet = MenuBottomSheet.Builder()
    .setMenuRes(R.menu.test_menu)          
    .closeAfterSelect(true)                
    .build()                               
  • You can add the menu items programmatically without menu file
val menuItems = arrayListOf(                                                  
    MenuBottomSheetItem("Turn alarm on", R.drawable.ic_baseline_alarm_on_24), 
    MenuBottomSheetItem("Turn alarm off", R.drawable.ic_baseline_alarm_off_24)
)                                                                             
            
val bottomSheet = MenuBottomSheet.Builder()
    .setMenuItems(menuItems)         
    .closeAfterSelect(true)                         
    .build()                        

Show menu

bottomSheet.show(this)

Listen to on item click

bottomSheet.onSelectMenuItemListener = { position: Int, id: Int? ->           
    when (id) {                                                               
        R.id.option1 -> Toast.makeText(this, "On", Toast.LENGTH_SHORT).show() 
        R.id.option2 -> Toast.makeText(this, "Off", Toast.LENGTH_SHORT).show()
        else -> Toast.makeText(this, "Nothing", Toast.LENGTH_SHORT).show()    
    }                                                                         
}                                                                             ```

Contributing

We welcome contributions !

  • ⇄ Pull requests and ★ Stars are always welcome.

About

You can create awesome menus with bottom sheet experience in a few lines

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages