版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010046908/article/details/49700479
介绍:
一个富有动感的Sheet(选择器), 支持背景虚化,背景暗化,支持快速拓展.支持从 Menu 中填充数据。
运行效果:
使用说明:
上面是设计图,demo运行效果图:
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();
}
}
|
注意:
-
目前SweetSheet支持的样式2种:SweetSheet.Type.RecyclerView 和 SweetSheet.Type.Viewpager
-
关于:SweetSheet.setMenuList(FragmentManager fm, LIst list); 第一个参数是用了做ViewPager的适配器使用的,类型SweetSheet.Type.RecyclerView 可以传null;
-
暂不支持使用LinearLayout 作为mSweetSheet 的父控件.
特点 (1.1):
-
支持从menu中创建.
-
优化SweetSheet.Type.RecyclerView 的体验.
-
gradle的支持
-
支持简单的扩展