SwipeLayout框架实现侧拉删除编辑功能

本文实例为大家分享了SwipeLayout实现侧拉删除编辑的具体代码,供大家参考,具体内容如下

第一步、添加依赖

dependencies {
  compile 'com.android.support:recyclerview-v7:21.0.0'
  compile 'com.android.support:support-v4:20.+'
  compile "com.daimajia.swipelayout:library:1.2.0@aar"
}

第二步、布局文件

//建议最好是在BottomView里面添加layout_gravity属性,或者在代码里面添加
<com.daimajia.swipe.SwipeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="80dp">
<!-- Bottom View Start-->
 <LinearLayout
  android:background="#66ddff00"
  android:id="@+id/bottom_wrapper"
  android:layout_width="160dp"
  android:weightSum="1"
  android:layout_height="match_parent">
  <!--What you want to show-->
  <!--在这里写我们侧滑后显示出来的控件-->
  <!-通常是几个TextView或者Button--->
</LinearLayout>
<!-- Bottom View End-->

<!-- Surface View Start -->
 <LinearLayout
  android:padding="10dp"
  android:background="#ffffff"
  android:layout_width="match_parent"
  android:layout_height="match_parent">
  <!--What you want to show in SurfaceView-->
  <!--这里写我们条目显示的内容的布局-->
</LinearLayout>
<!-- Surface View End -->
</com.daimajia.swipe.SwipeLayout>

第三步、在Activity中得到SwipeLayout实例.

SwipeLayout swipeLayout = (SwipeLayout) view.findViewById(R.id.swipelayout);
  //设置侧拉的模式
  swipeLayout.setShowMode(SwipeLayout.ShowMode.LayDown);
  //如果布局文件里面有layout_gravity属性,这句可以忽略
  //swipeLayout.addDrag(SwipeLayout.DragEdge.Left, findViewById(R.id.bottom_wrapper));

到此为止,一个条目的侧滑功能就实现了。
如果我们在Listview里面使用这个功能,那么我们需要继承BaseSwipeAdapter,并且复写里面的几个方法:

//获取swipeLayout布局
 @Override
public int getSwipeLayoutResourceId(int position) {
  return R.id.swipelayout;
}

//生成条目布局,相当于BaseAdapter里面的getView()方法
@Override
public View generateView(int position, ViewGroup parent) {
  View view = LayoutInflater.from(mContext).inflate(R.layout.listview_item, null);
  SwipeLayout swipeLayout = (SwipeLayout) view.findViewById(R.id.swipelayout);
  //这里写对布局中控件的一些初始化
  swipeLayout.setShowMode(SwipeLayout.ShowMode.LayDown);
  return view;
}
//为条目里面的控件赋值
@Override
public void fillValues(int position, View convertView) {

}
//下面的几个方法是BaseAdapter里面的方法,BaseSwipeAdapter也是继承自BaseAdapter
@Override
public int getCount() {
  return 0;
}

@Override
public Object getItem(int i) {
  return null;
}

@Override
public long getItemId(int i) {
  return 0;
}

这样,一个ListView的条目侧滑就基本实现了。点击删除/编辑的代码我们在方法generateView()里面实现。下面为Listview添加条目点击事件:

//此处的swipeLayout是generateView()里面从条目布局里面获取的
swipeLayout.getSurfaceView().setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {

    }
});

如果我们需要在侧滑的时候实现其他逻辑的话,我们可以添加侧滑监听:

swipeLayout.addSwipeListener(new SwipeLayout.SwipeListener() {
 @Override
 public void onClose(SwipeLayout layout) {
  //when the SurfaceView totally cover the BottomView.
 }

 @Override
 public void onUpdate(SwipeLayout layout, int leftOffset, int topOffset) {
  //you are swiping.
 }

 @Override
 public void onStartOpen(SwipeLayout layout) {

 }

 @Override
 public void onOpen(SwipeLayout layout) {
  //when the BottomView totally show.
 }

 @Override
 public void onStartClose(SwipeLayout layout) {

 }

 @Override
 public void onHandRelease(SwipeLayout layout, float xvel, float yvel) {
  //when user's hand released.
 }
});

到此,ListView侧滑功能基本实现。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 非常实用的侧滑删除控件SwipeLayout

    前言:项目中经常会用到类似于QQ侧滑点击删除的效果,网上的开源库也很多.个人感觉SwipeLayout最好用.下面介绍怎么使用. 一.首先导入需要的Jar包,有3个,AndroidSwipeLayout-v1.1.8.jar.AndroidViewAnimations-1.1.3.jar.nineoldandroids-2.4.0.jar.第一个jar包就是我们使用该控件的jar包,后面2个是侧滑出现删除menu的动画所需的jar包.下面就是怎么使用了. 主布局的xml文件如下,就是一个List

  • SwipeLayout框架实现侧拉删除编辑功能

    本文实例为大家分享了SwipeLayout实现侧拉删除编辑的具体代码,供大家参考,具体内容如下 第一步.添加依赖 dependencies { compile 'com.android.support:recyclerview-v7:21.0.0' compile 'com.android.support:support-v4:20.+' compile "com.daimajia.swipelayout:library:1.2.0@aar" } 第二步.布局文件 //建议最好是在Bo

  • weui框架实现上传、预览和删除图片功能代码

    jQuery WeUI 是专为微信公众账号开发而设计的一个简洁而强大的UI库,包含全部WeUI官方的CSS组件,并且额外提供了大量的拓展组件,丰富的组件库可以极大减少前端开发时间. jQuery WeUI 的最大特点是它只提供UI组件,并不会对项目所使用的框架和其他库有任何的限制,几乎可以在任何环境下使用.无论你的项目是基于jQuery,还是 React, Angular, Vue, 你都会发现 jQuery WeUI 能非常方便的和他们结合使用.既是你的项目是一个有很悠久历史的老项目,也几乎可

  • 使用jQuery实现一个类似GridView的编辑,更新,取消和删除的功能

    先来看看下面实时效果演示: 用户点击编辑时,在点击行下动态产生一行.编辑铵钮变为disabled. 新产生的一行有更新和取消的铵钮,点击"取消"铵钮,删除刚刚动态产生的行.编辑铵钮状态恢复. 更新与删除铵钮功能没有什么特别的. 在ASP.NET MVC视图html代码如下,普通的表格table,普通的html标签: 删除的铵钮功能: $('.Delete').click(function () { var flag = confirm('你确认是否删除记录?'); if (flag)

  • PHP 结合 Boostrap 结合 js 实现学生列表删除编辑及搜索功能

    这个自己的小项目要先告一段落了.可能还有许多bug.请见谅 删除学生功能 PHP: // 这里是通过前端代码HTML中的 url 传过来的,用 $_GET 来获取(相关HTML代码可以看一下到主页看一下前几条博客) if (empty($_GET['num'])) exit('<h1>找不到您要删除的学生的学号</h1>'); $num = $_GET['num']; $connection = mysqli_connect('localhost', 'root', '密码', '

  • SSH框架网上商城项目第11战之查询和删除商品功能实现

    在第8节我们完成了查询和删除商品类别的功能,那么现在实现查询和删除商品的功能就很好做了,原理和第8节一模一样,只是修改一些参数,比如请求不同的action等.由于查询和删除商品不需要弹出新的UI窗口,所以我们只要完成完成query.jsp中相应的部分以及相应的后台即可. 1. 查询商品功能的实现 查询功能主要在查询框中实现,从上一节可知,查询框用的是一个text:"<input id='ss' name='serach' />",我们通过把普通的文本框转化为查询搜索文本框来

  • thinkphp框架无限级栏目的排序功能实现方法示例

    本文实例讲述了thinkphp框架无限级栏目的排序功能实现方法.分享给大家供大家参考,具体如下: 题目中我们并没有说明是tp5的无限级排序还是tp3的无限级排序就是为了让小新手们明白,这些功能的实现跟你使用的框架是没有关系的,不管你是tp5还是tp3还是laravel还是yii框架都没有关系,我们强调的是思路,是解决问题的方法,演示的时候因为我在用tp3所以无所谓了. 无限级栏目的排序非常简单,这次以博文的方式分享给大家解决的思路. 上图: 上图是我们实现的无限级分类,我们要注意两个字段,id和

  • Java中SSM框架实现增删改查功能代码详解

    记录一下自己第一次整合smm框架的步骤. 参考博客和网站有:我没有三颗心脏 How2J学习网站 1.数据库使用的是mySql,首先创建数据库ssm1,并创建表student create database ssm1; use ssm1; CREATE TABLE student( id int(11) NOT NULL AUTO_INCREMENT, student_id int(11) NOT NULL UNIQUE, name varchar(255) NOT NULL, age int(1

  • ThinkPHP框架下整合支付宝支付功能图文教程

    本文实例讲述了ThinkPHP框架下整合支付宝支付功能.分享给大家供大家参考,具体如下: 背景 近期项目需要接入支付宝支付功能,其中开发使用了ThinkPHP3.2.3框架,通过参考开发平台文档可以知道,网站开发有两种场景,一种是手机网站支付,直接唤醒支付宝app进入支付操作:另一种多是 PC 端显示支付二维码的形式,然后使用手机的支付宝app扫描. 此处主要介绍手机网站支付的实现,后期补充扫码支付. 一.接入配置 1).接入步骤 根据"快速接入"中的流程,两者大同小异,都是进行: 第

  • jQuery实现为table表格动态添加或删除tr功能示例

    本文实例讲述了jQuery实现为table表格动态添加或删除tr功能.分享给大家供大家参考,具体如下: HTML页面元素如下: <!-- 订单明细dialog --> <div id="contractDetailDiv" title="销售订单明细" style="display:none;"> <table class="exhibit_table" id="contractDeta

  • TP5框架实现的数据库备份功能示例

    本文实例讲述了TP5框架实现的数据库备份功能.分享给大家供大家参考,具体如下: 1.效果图 2.下载扩展类(  \extands\org\Baksql.php) 3.在  \public\static  里新建一个data 文件夹用来存放 .sql  的文件 4.使用方法 controller <?php namespace app\index\controller; use think\Controller; class Backup extends Controller { //数据库备份

随机推荐