iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >Android使用SwipeListView实现类似QQ的滑动删除效果
  • 676
分享到

Android使用SwipeListView实现类似QQ的滑动删除效果

Android 2022-06-06 07:06:17 676人浏览 薄情痞子
摘要

QQ的滑动删除效果很不错,要实现这种效果,可以使用SwipeListView。 1. 下载com.fortysevendeg.swipelistview这个项目(以前GitH

QQ的滑动删除效果很不错,要实现这种效果,可以使用SwipeListView。

1. 下载com.fortysevendeg.swipelistview这个项目(以前GitHub上有,现在gitHub上没有了,百度了很多次才下载到的),导入Eclipse,右键单击,选择Properties->Android,选中Library下面的IsLibrary。

2. 新建一个项目MySwipeListView,加入SwipeListView这个库。

3. 在主窗体里面放入一个SwipeListView控件:


<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"
  android:orientation="vertical"
  android:paddingBottom="@dimen/activity_vertical_margin"
  android:paddingLeft="@dimen/activity_horizontal_margin"
  android:paddingRight="@dimen/activity_horizontal_margin"
  android:paddingTop="@dimen/activity_vertical_margin"
  tools:context="com.hzhi.myswipelistview.MainActivity" >
    <com.fortysevendeg.swipelistview.SwipeListView
      xmlns:swipe="http://schemas.android.com/apk/res-auto"
      android:id="@+id/exampleSwipeListView"
      android:listSelector="#00000000"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      swipe:swipeBackView="@+id/back"
      swipe:swipeCloseAllItemsWhenMoveList="true"
      swipe:swipeDrawableChecked="@drawable/choice_selected"
      swipe:swipeDrawableUnchecked="@drawable/choice_unselected"
      swipe:swipeFrontView="@+id/front"
      swipe:swipeMode="both" 
      swipe:swipeActionLeft="reveal"
      swipe:swipeActionRight="dismiss"
      swipe:swipeOpenOnLongPress="true"
    />
</LinearLayout>

其中两个重要的属性:
swipe:swipeFrontView:上面的View,即不滑动时显示的View。
swipe:swipeBackView:下面的View,即滑动后显示的View。
这两个View都定义在SwipeListView的行布局文件里面: 


<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
       android:layout_width="fill_parent"
       android:layout_height="fill_parent"
    >
  <LinearLayout
    android:id="@+id/back"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="#ffcccccc"
    android:gravity="right"
    android:tag="back" >
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/btn_delete"
        android:text="删除"/>
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/btn_update"
        android:text="更新"/>
  </LinearLayout>
  <RelativeLayout
      android:orientation="vertical"
      android:id="@+id/front"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:background="#ffffffff"
  >
    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/example_row_iv_image"/>
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@id/example_row_iv_image"
        android:id="@+id/example_row_tv_title"/>
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@id/example_row_iv_image"
        android:layout_below="@id/example_row_tv_title"
        android:id="@+id/example_row_tv_description"/>
  </RelativeLayout>  
</FrameLayout>

SwipeListView的行布局文件使用FrameLayout布局,FrameLayout里面所有的所有子元素都堆叠在FrameLayout的左上角。 

4. SwipeListView和其他ListView一样,也需要Adapter,使用方法也是一样的。这里就不详细讲了。 

5. 在主窗体Java文件中实现SwipeListView的功能,代码如下:


package com.hzhi.myswipelistview;
import android.support.v7.app.ActionBarActivity;
import android.util.Log;
import java.util.ArrayList;
import com.fortysevendeg.swipelistview.BaseSwipeListViewListener;
import com.fortysevendeg.swipelistview.SwipeListView;
import android.os.Bundle;
@SuppressWarnings("deprecation")
public class MainActivity extends ActionBarActivity {
  protected static final String TAG = "MySwipeListView"; 
  private ArrayList<String> mList;
  private MyAdapter mAdapter;
  private SwipeListView mSwipeListView;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    initData();
    mSwipeListView = (SwipeListView) findViewById(R.id.exampleSwipeListView);
    mAdapter = new MyAdapter(this, mList, mSwipeListView); 
    mSwipeListView.setAdapter(mAdapter);
    mSwipeListView.setSwipeListViewListener(new BaseSwipeListViewListener(){
      @Override 
      public void onChoiceChanged(int position, boolean selected) 
      { 
        Log.d(TAG, "onChoiceChanged:" + position + ", " + selected); 
      } 
      @Override 
      public void onChoiceEnded() 
      { 
        Log.d(TAG, "onChoiceEnded"); 
      } 
      @Override 
      public void onChoiceStarted() 
      { 
        Log.d(TAG, "onChoiceStarted"); 
      } 
      @Override 
      public void onClickBackView(int position) 
      { 
        Log.d(TAG, "onClickBackView:" + position); 
      } 
      @Override 
      public void onClickFrontView(int position) 
      { 
        Log.d(TAG, "onClickFrontView:" + position); 
      } 
      @Override 
      public void onClosed(int position, boolean fromRight) 
      { 
        Log.d(TAG, "onClosed:" + position + "," + fromRight); 
      } 
      @Override 
      public void onDismiss(int[] reverseSortedPositions) 
      { 
        Log.d(TAG, "onDismiss");       
      } 
      @Override 
      public void onFirstListItem() 
      { 
        Log.d(TAG, "onFirstListItem"); 
      } 
      @Override 
      public void onLastListItem() 
      { 
        Log.d(TAG, "onLastListItem"); 
      } 
      @Override 
      public void onListChanged() 
      { 
        Log.d(TAG, "onListChanged"); 
        mSwipeListView.closeOpenedItems(); 
      } 
      @Override 
      public void onMove(int position, float x) 
      { 
        Log.d(TAG, "onMove:" + position + "," + x); 
      } 
      @Override 
      public void onOpened(int position, boolean toRight) 
      { 
        Log.d(TAG, "onOpened:" + position + "," + toRight); 
      } 
      @Override 
      public void onStartClose(int position, boolean right) 
      { 
        Log.d(TAG, "onStartClose:" + position + "," + right); 
      } 
      @Override 
      public void onStartOpen(int position, int action, boolean right) 
      { 
        Log.d(TAG, "onStartOpen:" + position + "," + action + "," + right); 
      } 
    });
  }
  private void initData(){
    mList = new ArrayList<String>(); 
    for (int i = 0; i <= 10; i++) 
      mList.add("这是第" + i +"条数据!"); 
  }
}

最主要的代码即mSwipeListView.setSwipeListViewListener(new BaseSwipeListViewListener(){}),通过这行代码,为SwipeListView控件设置了Listener,可以根据自己的需要重载BaseSwipeListViewListener的各种方法。 

运行结果:

您可能感兴趣的文章:Android实现QQ侧滑(删除、置顶等)功能Android仿QQ左滑删除置顶ListView操作Android高仿QQ6.0侧滑删除实例代码Android仿QQ列表左滑删除操作Android开发中模仿qq列表信息滑动删除功能Android App中ListView仿QQ实现滑动删除效果的要点解析Android仿QQ长按删除弹出框功能示例Android仿QQ微信侧滑删除效果Android仿QQ首页ListView左滑置顶、删除功能


--结束END--

本文标题: Android使用SwipeListView实现类似QQ的滑动删除效果

本文链接: https://www.lsjlt.com/news/24425.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • android实现QQ微信侧滑删除效果
    最近由于项目需求,需要做一个listview中的item策划删除的效果,与是查找资料和参考了一些相关的博客,终于完美实现了策划删除的效果。先看一下效果图(研究了半天竟然没研究出来真机上gif图怎么做,大家将就看一下吧)。 &nbs...
    99+
    2023-05-30
  • android如何基于SwipeRefreshLayout实现类QQ的侧滑删除
    小编给大家分享一下android如何基于SwipeRefreshLayout实现类QQ的侧滑删除,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!还是效果图优先效果图...
    99+
    2023-05-30
    android
  • 怎么在android中使用View实现一个滑动删除效果
    这篇文章给大家介绍怎么在android中使用View实现一个滑动删除效果,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。实现功能可以向左滑动,右侧出现删除2、向左滑动如果删除出现一大半,松手打开删除,反之关闭删除3、应用...
    99+
    2023-05-31
    android view roi
  • jQuery实现类似滑动门切换效果的层切换
    复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3...
    99+
    2022-11-15
    滑动门 层切换
  • 如何在Android中使用RecyclerView实现一个滑动删除
    本篇文章为大家展示了如何在Android中使用RecyclerView实现一个滑动删除,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。ItemTouchHelper.CallbackItemTouch...
    99+
    2023-05-31
    android recyclerview recycle
  • RecyclerView进阶:使用ItemTouchHelper实现拖拽和侧滑删除效果
    前言现在RecyclerView的应用越来越广泛了,不同的应用场景需要其作出不同的改变。有时候我们可能需要实现侧滑删除的功能,比如知乎首页的侧滑删除,又或者长按Item进行拖动与其他Item进行位置的交换,但RecyclerView没有提供...
    99+
    2023-05-31
    recyclerview 侧滑 recycle
  • Android使用DrawerLayout实现侧滑菜单效果
    一、概述DrawerLayout是一个可以方便的实现Android侧滑菜单的组件,我最近开发的项目中也有一个侧滑菜单的功能,于是DrawerLayout就派上用场了。如果你从未使用过DrawerLayout,那么本篇博客将使用一个简单的案例...
    99+
    2023-05-30
    android drawerlayout 侧滑菜单
  • Android实现View滑动效果的6种方法
    本文实例为大家分享了Android实现View滑动效果的具体代码,供大家参考,具体内容如下 一、View的滑动简介 View的滑动是Android实现自定义控件的基础,同时在开发中我...
    99+
    2024-04-02
  • Android如何使用ViewPager2实现页面滑动切换效果
    目录1.引言2.实现页面滑动切换2.1 引入ViewPager2库2.2 使用ViewPager22.3 构建Fragment2.4 继承FragmentStateAdapter2....
    99+
    2024-04-02
  • Android中怎么使用ViewPager2实现页面滑动切换效果
    这篇“Android中怎么使用ViewPager2实现页面滑动切换效果”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Andr...
    99+
    2023-06-29
  • 如何使用css实现图片的滑动效果
    小编给大家分享一下如何使用css实现图片的滑动效果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!   <!DOCTYPE...
    99+
    2024-04-02
  • 怎么在Android中使用SeekBar实现一个平滑滚动效果
    这篇文章将为大家详细讲解有关怎么在Android中使用SeekBar实现一个平滑滚动效果,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。把max改为100,progress改为50<Se...
    99+
    2023-06-14
  • Android自定View实现滑动验证效果的代码
    效果图 自定义属性代码 <?xml version="1.0" encoding="utf-8"?> <resources> &...
    99+
    2024-04-02
  • 使用vue怎么实现左右滑动效果
    使用vue怎么实现左右滑动效果?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。HTML代码<template>    &l...
    99+
    2023-06-15
  • 如何使用纯CSS实现类似悬浮窗口的效果
    悬浮窗口是在网页设计中经常使用的一种效果,它可以提供快速访问功能或者展示重要的信息。本文将介绍如何使用纯CSS来实现类似悬浮窗口的效果,包括具体的代码示例。首先,我们需要在HTML中创建一个容器元素,用于承载悬浮窗口的内容。可以是一个div...
    99+
    2023-10-21
    实现 纯CSS 悬浮窗口
  • 原生js如果实现类似fullpage的单页/全屏滚动效果
    小编给大家分享一下原生js如果实现类似fullpage的单页/全屏滚动效果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!前言单页...
    99+
    2024-04-02
  • 【小程序】小程序如何实现滑动翻页(类似刷短视频的交互效果)
    在微信小程序中实现上下滑动翻页的效果其实非常简单,可以说一学就会。 这篇文章将非常详细地教大家如何实现这一交互: 数据准备 首先我们在 Page 的 data 属性中添加两个变量: data: { ...
    99+
    2023-09-12
    小程序
  • jQuery怎么实现类似fullpage插件的全屏滚动效果
    这篇文章主要讲解了“jQuery怎么实现类似fullpage插件的全屏滚动效果”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“jQuery怎么实现类似full...
    99+
    2024-04-02
  • 如何使用CSS实现文字删除效果
    在网页设计中,我们可能需要一些特殊效果来增加页面的美观度和趣味性。例如,我们可能需要一些文字效果来突出一些重要的信息或强调某些内容。其中之一便是文字删除,即在一些文本中添加删除线来表示它们已不再是有效或相关的内容。本文将介绍如何使用CSS来...
    99+
    2023-05-14
  • Android开发中利用HorizontalScrollView实现一个左右滑动效果
    这期内容当中小编将会给大家带来有关Android开发中利用HorizontalScrollView实现一个左右滑动效果,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。效果图一.什么是HorizontalSc...
    99+
    2023-05-31
    android horizontalscrollview roi
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作