AndroidSweetSheet

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010046908/article/details/49700479

介绍:

一个富有动感的Sheet(选择器), 支持背景虚化,背景暗化,支持快速拓展.支持从 Menu 中填充数据。

运行效果:

AndroidSweetSheet

使用说明:

上面是设计图,demo运行效果图:

AndroidSweetSheet


MainActivity.class

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
    //添加假数据
 
    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;
        }
    });

监听返回

1
2
3
4
5
6
7
8
9
10
11
    @Override
    public void onBackPressed() {
 
        if(mSweetSheet.isShow()){
 
            mSweetSheet.dismiss();
        }
        else{
            super.onBackPressed();
        }
    }

注意:

  1. 目前SweetSheet支持的样式2种:SweetSheet.Type.RecyclerView 和 SweetSheet.Type.Viewpager

  2. 关于:SweetSheet.setMenuList(FragmentManager fm, LIst list); 第一个参数是用了做ViewPager的适配器使用的,类型SweetSheet.Type.RecyclerView 可以传null;

  3. 暂不支持使用LinearLayout 作为mSweetSheet 的父控件.

特点 (1.1):

  1. 支持从menu中创建.

  2. 优化SweetSheet.Type.RecyclerView 的体验.

  3. gradle的支持

  4. 支持简单的扩展



上一篇:Android Studio 快捷键的使用


下一篇:HTML5 cavans的使用