一個富有動感的Sheet(選擇器):AndroidSweetSheet

jopen 9年前發布 | 19K 次閱讀 Android開發 移動開發 AndroidSweetSheet

一個富有動感的 Sheet, github 先發兩張圖: 原型.GIF

效果圖.gif 真機效果更贊哦.

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:

  1. 目前SweetSheet支持的樣式2種:SweetSheet.Type.RecyclerView 和 SweetSheet.Type.Viewpager
  2. 關于:SweetSheet.setMenuList(FragmentManager fm, LIst list); 第一個參數是用了做ViewPager的適配器使用的,類型SweetSheet.Type.RecyclerView 可以傳null;
  3. 暫不支持使用LinearLayout 作為mSweetSheet 的父控件.

Future (1.1):

  1. 支持從menu中創建.
  2. 優化SweetSheet.Type.RecyclerView 的體驗.
  3. gradle的支持
  4. 支持簡單的擴展

項目主頁:http://www.baiduhome.net/lib/view/home/1438954666411

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