Android開源 - AndroidSweetSheet
效果圖
使用
// SweetSheet 控件,根據 rl 確認位置
mSweetSheet = new SweetSheet(rl);
//設置數據源 (數據源支持設置 list 數組,也支持從menu 資源中獲取)
mSweetSheet.setMenuList(list);
//根據設置不同的 Delegate 來顯示不同的風格.
mSweetSheet.setDelegate(new RecyclerViewDelegate(true));
//根據設置不同Effect來設置背景效果:BlurEffect 模糊效果.DimEffect 變暗效果,NoneEffect 沒有效果.
mSweetSheet.setBackgroundEffect(new BlurEffect(8));
//設置菜單點擊事件
mSweetSheet.setOnMenuItemClickListener(new SweetSheet.OnMenuItemClickListener() {
@Override
public boolean onItemClick(int position, MenuEntity menuEntity1) {
//根據返回值, true 會關閉 SweetSheet ,false 則不會.
Toast.makeText(MainActivity.this, menuEntity1.title + " " + position, Toast.LENGTH_SHORT).show();
return true;
}
});
</code></pre>
自定義擴展
// SweetSheet 控件,根據 rl 確認位置
mSweetSheet3 = new SweetSheet(rl);
//定義一個 CustomDelegate 的 Delegate ,并且設置它的出現動畫.
CustomDelegate customDelegate = new CustomDelegate(true,
CustomDelegate.AnimationType.DuangLayoutAnimation);
View view = LayoutInflater.from(this).inflate(R.layout.layout_custom_view, null, false);
//設置自定義視圖.
customDelegate.setCustomView(view);
//設置代理類
mSweetSheet3.setDelegate(customDelegate);
//因為使用了 CustomDelegate 所以mSweetSheet3中的 setMenuList和setOnMenuItemClickListener就沒有效果了
view.findViewById(R.id.button2).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mSweetSheet3.dismiss();
}
});
監聽返回
@Override
public void onBackPressed() {
if(mSweetSheet.isShow()){
mSweetSheet.dismiss();
}
else{
super.onBackPressed();
}
}
</code></pre>
本文由用戶 nanxicao 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!