這篇文章主要爲大家詳細介紹了Android使用CoordinatorLayout實現底部彈出菜單,具有一定的參考價值,感興趣的小夥伴們可以參考一下
本文實例爲大家分享了使用CoordinatorLayout實現底部彈出菜單的具體代碼,供大家參考,具體內容如下
第一步:添加依賴:
compile "com.android.support:design:${project.properties.get("support")}"
第二步:佈局引用:
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#04827c"> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent"> //頁面佈局 </RelativeLayout> <include //引入菜單佈局 android:id="@+id/au_bottom_sheet" layout="@layout/view_audio_list" android:layout_width="match_parent" android:layout_height="match_parent" android:focusable="true" app:behavior_hideable="true" app:behavior_peekHeight="0dp" app:layout_behavior="@string/bottom_sheet_behavior" /> </android.support.design.widget.CoordinatorLayout>
第三步:使用:
//找到BottomSheetBehavior BottomSheetBehavior behavior = BottomSheetBehavior.from(findViewById(R.id.au_bottom_sheet)); //設置彈出高度 behavior.setPeekHeight(WindowHeight / 2); //默認隱藏 behavior.setState(BottomSheetBehavior.STATE_HIDDEN); //添加消失監聽 behavior.setBottomSheetCallback(bottomSheetCallback);
添加菜單消失監聽:
//狀態監聽,通過這個監聽菜單是否消失 private BottomSheetBehavior.BottomSheetCallback bottomSheetCallback = new BottomSheetBehavior.BottomSheetCallback() { @Override public void onStateChanged(@NonNull View bottomSheet, int newState) { if (newState == BottomSheetBehavior.STATE_HIDDEN) { if (!isBehaviorShowing(behavior)) { //菜單已經消失 } } } @Override public void onSlide(@NonNull View bottomSheet, float slideOffset) { //滑動監聽 } };
判斷是否可見:
private Boolean isBehaviorShowing(BottomSheetBehavior behavior) { return behavior.getState() == BottomSheetBehavior.STATE_COLLAPSED || behavior.getState() == BottomSheetBehavior.STATE_EXPANDED || behavior.getState() == BottomSheetBehavior.STATE_SETTLING; }
收回菜單:
behavior.setState(BottomSheetBehavior.STATE_HIDDEN);
彈出菜單:
behavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持神馬文庫。