一個富有動感的Sheet(選擇器):AndroidSweetSheet
一個富有動感的 Sheet, github 先發兩張圖:
Usage:
MainActivity.class
//添加假數據
MenuEntity menuEntity=new MenuEntity();
menuEntity.resId=R.drawable.ic_account_child;
menuEntity.name="QQ";
list.add(menuEntity);
list.add(menuEntity);
list.add(menuEntity);
list.add(menuEntity);
list.add(menuEntity);
list.add(menuEntity);
list.add(menuEntity);
list.add(menuEntity);
list.add(menuEntity);
list.add(menuEntity);
list.add(menuEntity);
list.add(menuEntity);
list.add(menuEntity);
//根據Type生成對應的樣式 SweetSheet 控件,根據 rl 確認位置
mSweetSheet = new SweetSheet(rl, SweetSheet.Type.RecyclerView);
//設置數據源 FragmentManager 在樣式為Viewpager 是必須的, RecyclerView樣式可以為 null, 不影響運行
mSweetSheet.setMenuList(getSupportFragmentManager(), list);
//設置背景灰度
mSweetSheet.setBackgroundDim(0.8f);
//設置點擊事件
mSweetSheet.setOnMenuItemClickListener(new SweetSheet.OnMenuItemClickListener() {
@Override
public boolean onItemClick(int position) {
//根據返回值, true 會關閉 SweetSheet ,false 則不會.
Toast.makeText(MainActivity.this,list.get(position).name+" "+position,Toast.LENGTH_SHORT).show();
return true;
}
});監聽返回
@Override
public void onBackPressed() {
if(mSweetSheet.isShow()){
mSweetSheet.dismiss();
}
else{
super.onBackPressed();
}
}Note:
- 目前SweetSheet支持的樣式2種:SweetSheet.Type.RecyclerView 和 SweetSheet.Type.Viewpager
- 關于:SweetSheet.setMenuList(FragmentManager fm, LIst list); 第一個參數是用了做ViewPager的適配器使用的,類型SweetSheet.Type.RecyclerView 可以傳null;
- 暫不支持使用LinearLayout 作為mSweetSheet 的父控件.
Future (1.1):
- 支持從menu中創建.
- 優化SweetSheet.Type.RecyclerView 的體驗.
- gradle的支持
- 支持簡單的擴展
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!