底部動作條(BottomSheet)是一個從屏幕底部邊緣向上滑出的一個面板,給用戶呈現一組功能選項。底部動作條封裝了一組簡單、清晰、無需額外說明的操作。底部動作條(如下圖)可以是列表樣式的,也可以是宮格樣式的。
根據Material Design設計規范,如果只有兩個或更少的操作,可以考慮菜單或者對話框來實現。但是當有三個或三個以上的操作需要提供給用戶選擇時,底部動作條就有了用武之地,可以作為對話框和菜單的替代產品應用到實際的開發實踐中。
筆者通過繼承Dialog類實現了一個簡單版本、列表樣式的底部動作條,下面介紹具體的使用方法。
安裝方法
在Android Studio中,以導入Module的方式添加BottomSheet依賴(jCenter Remote Library Dependency等待更新...)。
基本用法
1 BottomSheet bottomSheet = new BottomSheet(this); 2 bottomSheet.setTitle("Bottom Sheet"); 3 bottomSheet.addItem(R.mipmap.quiz_bottom_download, "下載", new View.OnClickListener() { 4 @Override 5 public void onClick(View v) { 6 makeToast("下載!"); 7 bottomSheet.dismiss(); 8 } 9 }); 10 bottomSheet.addItem(R.mipmap.quiz_bottom_favorite, "喜歡", new View.OnClickListener() { 11 @Override 12 public void onClick(View v) { 13 makeToast("喜歡!"); 14 bottomSheet.dismiss(); 15 } 16 }); 17 bottomSheet.addItem(R.mipmap.quiz_bottom_answer, "答案", new View.OnClickListener() { 18 @Override 19 public void onClick(View v) { 20 makeToast("答案!"); 21 bottomSheet.dismiss(); 22 } 23 }); 24 bottomSheet.addItem(R.mipmap.quiz_bottom_share, "分享", new View.OnClickListener() { 25 @Override 26 public void onClick(View v) { 27 makeToast("分享!"); 28 bottomSheet.dismiss(); 29 } 30 }); 31 bottomSheet.show();
設計思想
關鍵是對setContentView()方法的重寫。setContentView()實際承擔着底部動作條的繪制,事件處理的任務,讀者可以對該方法定制實現自己底部動作條。
效果截圖
下載鏈接:鏈接: http://pan.baidu.com/s/1gduaTOZ 密碼: jnmu。