Android使用CoordinatorLayout實現(xiàn)底部彈出菜單
本文實例為大家分享了使用CoordinatorLayout實現(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">
//頁面布局
</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)聽,通過這個監(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) {
//滑動監(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);
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Flutter應(yīng)用框架搭建實現(xiàn)屏幕適配方案詳解
移動設(shè)備多樣性,特別是Android的碎片化嚴(yán)重,存在各種各樣的分辨率,flutter跨平臺開發(fā)又需要同時支持Android和IOS,為盡可能的還原設(shè)計圖效果提升用戶的體驗,根據(jù)設(shè)計稿設(shè)計屏幕ui的時候我們需要考慮到屏幕適配的問題2022-11-11
Android省市區(qū)三級聯(lián)動控件使用方法實例講解
最近有需求需要實現(xiàn)省市區(qū)三級聯(lián)動,但是發(fā)現(xiàn)之前的實現(xiàn)不夠靈活,自己做了一些優(yōu)化。下面通過實例代碼給大家介紹下Android省市區(qū)三級聯(lián)動控件使用方法2017-01-01
Android實現(xiàn)底部半透明彈出框PopUpWindow效果
這篇文章主要為大家詳細(xì)介紹了Android實現(xiàn)底部半透明彈出框PopUpWindow效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07
Android開發(fā)之Fragment懶加載的幾種方式及性能對比
這篇文章主要介紹了Android開發(fā)之Fragment懶加載的幾種方式及性能對比的相關(guān)資料,具體詳細(xì)介紹需要的小伙伴可以參考下面文章內(nèi)容2022-05-05
Android開發(fā)之獲取短信驗證碼后按鈕背景變化并且出現(xiàn)倒計時
在開發(fā)是經(jīng)常會遇到獲取短信驗證碼,然后獲取驗證碼后需要等待n秒倒計時,這時是不能再次發(fā)送短信請求的,這是需要一個倒計時程序,本文給大家分享了實現(xiàn)此功能的代碼,需要的朋友參考下2016-01-01
Android使用系統(tǒng)自帶的相機實現(xiàn)一鍵拍照功能
這篇文章主要介紹了Android使用系統(tǒng)自帶的相機實現(xiàn)一鍵拍照功能,非常不錯,具有參考借鑒價值,需要的朋友參考下2017-01-01
Android中ListView的幾種常見的優(yōu)化方法總結(jié)
Android中的ListView應(yīng)該算是布局中幾種最常用的組件之一,本篇文章主要做了三種優(yōu)化總結(jié),有興趣的可以了解一下。2017-02-02

