志在指尖
用双手敲打未来

SwipeMenuLayout一个零耦合的侧滑菜单

Android侧滑菜单-SwipeMenuLayout
SwipeMenuLayout是一个零耦合的侧滑菜单,使用方式及其简单!只需要正常编写xml布局文件即可。
目前功能如下
支持启用或禁用侧滑菜单
支持菜单在条目的左边或者右边
支持滑动阻塞或非阻塞
支持点击了menu后是否自动关闭menu
支持menu打开和关闭的回调监听
可快速打开和关闭menu
简单用例
只需正常编写xml文件即可
SwipeMenuLayout中第一个view为item布局,后面的为menu布局
关于布局的宽高问题,特殊情况简单说明一下
item的布局宽度始终会以match_parent测量
SwipeMenuLayout如果宽为warp_content的话,以父view的宽度为主,基本也是match_parent
SwipeMenuLayout高度为wrap_content的话,分两种情况,第一种是下面的view高度都是warp_content,那高度就是warp_content;如果其中的view高度有值的话,以数值最大的那个为SwipeMenuLayout的高度;如果SwipeMenuLayout的高度有准确值,例如60dp,下面的view高度即便超过60dp依旧也为60dp;
[Java]纯文本查看
01
//第一步项目根路径build中添加
02
allprojects{
03
repositories{
04

05
maven{url’https://jitpack.io’}
06
}
07
}
08
//第二步moudler中依赖
09
dependencies{
10
implementation’com.github.ljphawk:SwipeMenuLayout:1.01′
11
}
[XML]纯文本查看
01
<!–父容器为SwipeMenuLayout后,正常编写xml就行啦–>
02
<!–下面示例中的值等于默认值–>
03
<cn.ljp.swipemenu.SwipeMenuLayout
04
xmlns:android=”http://schemas.android.com/apk/res/android”
05
xmlns:app=”http://schemas.android.com/apk/res-auto”
06
android:id=”@+id/swipe_menu_layout”
07
android:layout_width=”match_parent”
08
android:layout_height=”60dp”
09
android:background=”#e9e9e9″
10
app:isEnableLeftMenu=”false”
11
app:isEnableSwipe=”true”
12
app:isClickMenuAndClose=”false”
13
app:isOpenChoke=”true”>
14
15
<!–item布局为SwipeMenuLayout下的第一个view,后面的都是菜单–>
16
<RelativeLayout
17
android:id=”@+id/ll_item”
18
android:layout_width=”match_parent”
19
android:layout_height=”match_parent”>
20
<!–也可以是复杂的item布局–>
21
<TextView
22
android:id=”@+id/tv_content”
23
android:layout_width=”wrap_content”
24
android:layout_height=”wrap_content”
25
android:gravity=”center”/>
26
</RelativeLayout>
27
28
<TextView
29
android:id=”@+id/tv_menu1″
30
android:layout_width=”60dp”
31
android:layout_height=”60dp”
32
android:background=”#fff”
33
android:text=”取消关注”/>
34
35
<TextView
36
android:id=”@+id/tv_menu2″
37
android:layout_width=”60dp”
38
android:layout_height=”60dp”
39
android:background=”#f00″
40
android:text=”删除”/>
41
42
</cn.ljp.swipemenu.SwipeMenuLayout>
属性说明
代码示例
[Java]纯文本查看复制代码
01
有set方法就有会对应的get方法,get方法我就不贴了
02
set方法支持链式调用
03
04
SwipeMenuLayoutswipeMenuLayout=findViewById(R.id.swipe_menu_layout);
05
//是否启用侧滑菜单默认是启用的
06
swipeMenuLayout.setEnableSwipe(true);
07
//设置菜单是否在item的左边,在左边的话是向右滑动,反之左滑(默认在item右边)
08
swipeMenuLayout.setEnableLeftMenu(false);
09
/*
10
是否开启阻塞效果默认开启。
11
举个例子比如你把item1的侧滑菜单划出来了,你继续滑动item2的,
12
这是默认是开启阻塞效果的,在你滑动item2的时候会先关闭item1的菜单,
13
需要再次滑动item2才可以(qq是这样子的)
14
如果关闭这个效果,你在滑动item2的同时会同时关闭item1
15
*/
16
swipeMenuLayout.setOpenChoke(true);
17
/*
18
是否开启点击菜单后自动关闭菜单,默认false.
19
思来想去决定还是把这个交给开发者决定应该在什么合适的时候来关闭
20
*/
21
swipeMenuLayout.setClickMenuAndClose(false);
22
//动画方式展开菜单默认300ms
23
swipeMenuLayout.expandMenuAnim();
24
//动画方式关闭菜单默认300ms
25
swipeMenuLayout.closeMenuAnim();
26
//快速打开菜单0s
27
swipeMenuLayout.quickExpandMenu();
28
//快速关闭菜单0s
29
swipeMenuLayout.quickCloseMenu();
30
//获取当前菜单是否展开
31
swipeMenuLayout.isExpandMenu();
32
//菜单打开关闭的监听。true打开了false关闭了
33
swipeMenuLayout.setSwipeMenuStateListener(newSwipeMenuStateListener());
xml代码设置
[XML]纯文本查看复制代码
viewsource
01
<!–下面示例中的值等于默认值–>
02
<cn.ljp.swipemenu.SwipeMenuLayout
03
xmlns:android=”http://schemas.android.com/apk/res/android”
04
xmlns:app=”http://schemas.android.com/apk/res-auto”
05
android:id=”@+id/swipe_menu_layout”
06
android:layout_width=”match_parent”
07
android:layout_height=”60dp”
08
android:background=”#e9e9e9″
09
app:isEnableLeftMenu=”false”
10
app:isEnableSwipe=”true”
11
app:isClickMenuAndClose=”false”
12
app:isOpenChoke=”true”>
13
14
<RelativeLayout
15
android:id=”@+id/ll_item”
16
android:layout_width=”match_parent”
17
android:layout_height=”match_parent”>
18
<!–也可以是复杂的item布局–>
19
<TextView
20
android:id=”@+id/tv_content”
21
android:layout_width=”wrap_content”
22
android:layout_height=”wrap_content”
23
android:gravity=”center”/>
24
</RelativeLayout>
25
26
<TextView
27
android:id=”@+id/tv_menu1″
28
android:layout_width=”60dp”
29
android:layout_height=”60dp”
30
android:background=”#fff”
31
android:text=”取消关注”/>
32
33
<TextView
34
android:id=”@+id/tv_menu2″
35
android:layout_width=”60dp”
36
android:layout_height=”60dp”
37
android:background=”#f00″
38
android:text=”删除”/>
39
40
</cn.ljp.swipemenu.SwipeMenuLayout>

未经允许不得转载:IT技术网站 » SwipeMenuLayout一个零耦合的侧滑菜单
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

志在指尖 用双手敲打未来

登录/注册IT技术大全

热门IT技术

C#基础入门   SQL server数据库   系统SEO学习教程   WordPress小技巧   WordPress插件   脚本与源码下载