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;

SwipeMenuLayout一个零耦合的侧滑菜单


[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>

© 版权声明
好牛新坐标
版权声明:
1、IT大王遵守相关法律法规,由于本站资源全部来源于网络程序/投稿,故资源量太大无法一一准确核实资源侵权的真实性;
2、出于传递信息之目的,故IT大王可能会误刊发损害或影响您的合法权益,请您积极与我们联系处理(所有内容不代表本站观点与立场);
3、因时间、精力有限,我们无法一一核实每一条消息的真实性,但我们会在发布之前尽最大努力来核实这些信息;
4、无论出于何种目的要求本站删除内容,您均需要提供根据国家版权局发布的示范格式
《要求删除或断开链接侵权网络内容的通知》:https://itdw.cn/ziliao/sfgs.pdf,
国家知识产权局《要求删除或断开链接侵权网络内容的通知》填写说明: http://www.ncac.gov.cn/chinacopyright/contents/12227/342400.shtml
未按照国家知识产权局格式通知一律不予处理;请按照此通知格式填写发至本站的邮箱 wl6@163.com

相关文章