您好,登錄后才能下訂單哦!
本文實(shí)例為大家分享了使用CoordinatorLayout實(shí)現(xiàn)底部彈出菜單的具體代碼,供大家參考,具體內(nèi)容如下
第一步:添加依賴:
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"> //頁(yè)面布局 </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)); //設(shè)置彈出高度 behavior.setPeekHeight(WindowHeight / 2); //默認(rèn)隱藏 behavior.setState(BottomSheetBehavior.STATE_HIDDEN); //添加消失監(jiān)聽 behavior.setBottomSheetCallback(bottomSheetCallback);
添加菜單消失監(jiān)聽:
//狀態(tài)監(jiān)聽,通過(guò)這個(gè)監(jiān)聽菜單是否消失 private BottomSheetBehavior.BottomSheetCallback bottomSheetCallback = new BottomSheetBehavior.BottomSheetCallback() { @Override public void onStateChanged(@NonNull View bottomSheet, int newState) { if (newState == BottomSheetBehavior.STATE_HIDDEN) { if (!isBehaviorShowing(behavior)) { //菜單已經(jīng)消失 } } } @Override public void onSlide(@NonNull View bottomSheet, float slideOffset) { //滑動(dòng)監(jiān)聽 } };
判斷是否可見:
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);
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。