android tv侧滑菜单,SwipeMenuLayout一个零耦合的侧滑菜单

SwipeMenuLayout是一个轻量级的Android侧滑菜单库,支持在XML中简单配置,实现左右滑动效果。该库提供启用/禁用侧滑、菜单位置设置、阻塞效果、点击关闭等特性,并且支持动画和回调监听。通过添加依赖和设置属性,可以快速集成到项目中,实现自定义的侧滑菜单交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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;c271d16062563d57ce78945a163deaf6.png

[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

02

03

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

16

17

android:id=”@+id/ll_item”

18

android:layout_width=”match_parent”

19

android:layout_height=”match_parent”>

20

21

22

android:id=”@+id/tv_content”

23

android:layout_width=”wrap_content”

24

android:layout_height=”wrap_content”

25

android:gravity=”center”/>

26

27

28

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

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

属性说明

代码示例

[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

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

15

android:id=”@+id/ll_item”

16

android:layout_width=”match_parent”

17

android:layout_height=”match_parent”>

18

19

20

android:id=”@+id/tv_content”

21

android:layout_width=”wrap_content”

22

android:layout_height=”wrap_content”

23

android:gravity=”center”/>

24

25

26

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值