一個富有動感的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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!