Android仿QQ列表滑动

Posted 码上夏雨

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android仿QQ列表滑动相关的知识,希望对你有一定的参考价值。

VastSwipeListView

一款支持自定义的仿QQ列表滑动控件

💫 特性

  • 🤔 支持自定义菜单项,包括 标题 图标 菜单背景色 标题字体大小 图标大小
  • 🤣 支持自定义菜单类别,包括 只有左菜单 只有右菜单 左右都有菜单
  • 😏 支持自定义菜单打开和关闭时间
  • 😎 支持自定义菜单 Interpolator
  • 😛 提供初始值以便具有更好的兼容性
  • 😁 分离式设计,使用 VastSwipeMenuMgr 进行样式管理
  • 🙂 使用菜单项去定义菜单点击事件,避免接口化设计导致你需要重复书写if判断

👌如何使用

在你项目的 build.gradle 添加:

implementation 'io.github.sakurajimamaii:VastSwipeListView:0.0.1'

🛠 快速开始

  1. 在你的布局中添加 VastSwipeListView

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".SlideActivity">
        <com.gcode.vastswipelayout.view.VastSwipeListView
            android:id="@+id/listview"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:choiceMode="singleChoice"/>
    </LinearLayout>
    
  2. 使用 VastSwipeMenuItem 来定义你的菜单项,调用 VastSwipeMenuMgr 内的方法将菜单项添加进去

    我们这里以定义撤销项举例

    val deleteItem = VastSwipeMenuItem(this@SlideActivity)
    deleteItem.setBackgroundByColorInt(0xFF1e90ff)
    deleteItem.setTitleByString("撤销")
    deleteItem.setTitleColorByColorInt(Color.WHITE)
    deleteItem.setIconByResId(R.drawable.ic_delete)
    deleteItem.setClickEvent  item: VastSwipeMenuItem, position: Int ->
        run 
            Toast.makeText(this@SlideActivity, "$item.title $position", Toast.LENGTH_SHORT)
                .show()
        
    
    
    swipeMenuMgr.addLeftMenuItem(deleteItem)
    
  3. 准备列表项数据的adapter

    val listViewAdapter = ListViewAdapter(this, R.layout.listview_item, lists)
    
  4. 将设置好的 VastSwipeMenuMgr 和列表项 Adapter 传给 VastSwipeListView

    vastSwipeListView.setSwipeMenuMgr(swipeMenuMgr)
    vastSwipeListView.adapter = listViewAdapter
    vastSwipeListView.onItemClickListener =
        AdapterView.OnItemClickListener  _, _, arg2, _ ->
            Toast.makeText(
                context,
                "位置   " + arg2 + "  >>>  value:" + lists[arg2],
                Toast.LENGTH_SHORT
            ).show()
        
    

👀 查看代码

👉 VastSwipeListView

以上是关于Android仿QQ列表滑动的主要内容,如果未能解决你的问题,请参考以下文章

Android-自定义仿QQ列表Item滑动

仿qq会话列表滑动效果

Android学习之仿QQ側滑功能的实现

android高仿小视频应用锁3种存储库QQ小红点动画仿支付宝图表等源码

android(仿QQ向右滑动退出)在viewpager中onTouchEvent无法监听到ACTION_DOWN的getX的值

Android仿QQ登录下拉历史列表