Bottom sheet are introduced in design support library revision 23.2.0. The design spec for bottom sheets can be found at https://www.google.com/design/spec/components/bottom-sheets.html
Gradle might not be able to download this revision for you, you would need to update your SDK using android SDK manager.
Dependency
dependencies { compile 'com.android.support:design:23.2.0' }
Gradle might not be able to download this revision for you, you would need to update your SDK using android SDK manager.
Implementation
You can implement bottom sheets support with just layout xml file.
To make a view as bottom sheets add it as a child of CoordinatorLayout and then set BottomSheetBehavior to it (app:layout_behavior="android.support.design.widget.BottomSheetBehavior")
<?xml version="1.0" encoding="utf-8"?> <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/main_content" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" android:background="@android:color/holo_red_dark"> <Button android:id="@+id/show_dialog" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Show Dialog"/> <LinearLayout android:id="@+id/bottom_sheet_view" android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_behavior="android.support.design.widget.BottomSheetBehavior" android:orientation="vertical" android:background="@android:color/holo_blue_dark" app:behavior_hideable="true"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_horizontal" android:text="Item 1"/> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_horizontal" android:text="Item 2"/> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_horizontal" android:text="Item 3"/> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_horizontal" android:text="Item 4"/> </LinearLayout> </android.support.design.widget.CoordinatorLayout>
Set app:behavior_hideable(BottomSheetBehavior.setHideable) to true to hide and show the bottom sheets by scrolling.
app: behavior_peekHeight(BottomSheetBehavior.setPeekHeight) can be used to set a display height for the bottom sheets.
You can programatically set these attributes on BottomSheetBehavior as well. BottomSheetBehavior is obtained from the botton sheet view as BottomSheetBehavior.from(bottom_sheet_view)
If you’d like to receive callbacks for state changes, you can set a BottomSheetCallback.
State can be set programatically using BottomSheetBehavior.setState
Source code for the example can be found at https://github.com/trsquarelab/androidexamples/tree/master/BottomSheets
app: behavior_peekHeight(BottomSheetBehavior.setPeekHeight) can be used to set a display height for the bottom sheets.
You can programatically set these attributes on BottomSheetBehavior as well. BottomSheetBehavior is obtained from the botton sheet view as BottomSheetBehavior.from(bottom_sheet_view)
If you’d like to receive callbacks for state changes, you can set a BottomSheetCallback.
behavior = BottomSheetBehavior.from(bottom_sheet_view); behavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() { @Override public void onStateChanged(View bottomSheet, int newState) { switch (newState) { case BottomSheetBehavior.STATE_DRAGGING: break; case BottomSheetBehavior.STATE_SETTLING: break; case BottomSheetBehavior.STATE_EXPANDED: break; case BottomSheetBehavior.STATE_COLLAPSED: break; case BottomSheetBehavior.STATE_HIDDEN: break; } } @Override public void onSlide(View bottomSheet, float slideOffset) { } });
State can be set programatically using BottomSheetBehavior.setState
Source code for the example can be found at https://github.com/trsquarelab/androidexamples/tree/master/BottomSheets
Hi There,
ReplyDeleteThis is indeed great! But I think perhaps you are generally referring Android Bottom Sheet tutorial which is getting unsustainable.
I am given an assignment to write code on interpolation search binary search(searching an integer in an ordered list). but I don't have a clear idea about about both of them as I missed the theory class. so can anyone suggest me from where I can get satisfying information about them?
I am so grateful for your blog. Really looking forward to read more.
Kind Regards,
Asha