仿微信侧滑删除SwipeListView实例
来源:互联网 发布:大数据质量管理 编辑:程序博客网 时间:2024/06/05 11:02
必须要向各位说明的是,使用第三方开源项目必需要引入相应的jar包或者项目,SwipeListView必须依赖开源swipelistview项目以及nineoldandroids-2.4.0.jar,
源码下载:https://github.com/47deg/android-swipelistview。
1、导入swipeListView库,报错需要nineoldandroids.jar和android-support-v4.jar库。android-support-v4.jar直接在Android SDK里的.\extras\android\support文件夹里找到。nineoldandroids.jar库需要到https://github.com/JakeWharton/NineOldAndroids/里下载。
- <com.fortysevendeg.swipelistview.SwipeListView
- xmlns:swipe="http://schemas.android.com/apk/res-auto"//命名空间
- android:id="@+id/example_lv_list
- android:listSelector="#00000000"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- swipe:swipeFrontView="@+id/front"//swipelistview顶部viewgroup(实例截图中包含人物、头像、时间的layout) swipe:swipeBackView="@+id/back"//swipelistview背后的viewgroup(实例截图中包删除按钮的layout)
- swipe:swipeActionLeft="[reveal | dismiss]"//设置向左滑动是当前别滑动item的显示效果(reveal显示背后的viewgroup,dismiss该item消失)
- swipe:swipeActionRight="[reveal | dismiss]"//同向左滑动
- swipe:swipeMode="[none | both | right | left]"//设置swipelistview无滑动效果,两侧均可滑动,向右滑动,向左滑动 swipe:swipeCloseAllItemsWhenMoveList="[true | false]"//swipelistview滚动时关闭所有已打开的item
- swipe:swipeOpenOnLongPress="[true | false]"//长按某个item是否打开
- swipe:swipeAnimationTime="[miliseconds]"//动画持续时间
- swipe:swipeOffsetLeft="[dimension]"//滑动后顶部viewgroup距离左边界距离
- swipe:swipeOffsetRight="[dimension]" />
把swipelistview库导进工程就可以看到swipelistview的jar在工程里了 下面来讲解一下我的这个Demo首先来看一下工程目录图,j
先看一下布局文件
上面这段代码主要是对swipelistview的一些配置。
- <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- xmlns:swipe="http://schemas.android.com/apk/res-auto"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- tools:context=".MainActivity" >
- <com.fortysevendeg.swipelistview.SwipeListView
- android:id="@+id/example_lv_list"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:listSelector="#00000000"
- swipe:swipeActionLeft="reveal"
- swipe:swipeActionRight="reveal"
- swipe:swipeAnimationTime="0"
- swipe:swipeBackView="@+id/back"
- swipe:swipeCloseAllItemsWhenMoveList="true"
- swipe:swipeFrontView="@+id/front"
- swipe:swipeMode="both"
- swipe:swipeOffsetLeft="0dp"
- swipe:swipeOffsetRight="0dp"
- swipe:swipeOpenOnLongPress="false" />
- </RelativeLayout>
上面这段代码主要是对swipelistview的一些配置。
<com.fortysevendeg.swipelistview.SwipeListView
xmlns:swipe="http://schemas.android.com/apk/res-auto" android:id="@+id/example_lv_list" android:listSelector="#00000000" android:layout_width="fill_parent" android:layout_height="wrap_content" swipe:swipeFrontView="@+id/front" swipe:swipeBackView="@+id/back" swipe:swipeActionLeft="[reveal | dismiss]" swipe:swipeActionRight="[reveal | dismiss]" swipe:swipeMode="[none | both | right | left]" swipe:swipeCloseAllItemsWhenMoveList="[true | false]" swipe:swipeOpenOnLongPress="[true | false]" swipe:swipeAnimationTime="[miliseconds]" swipe:swipeOffsetLeft="[dimension]" swipe:swipeOffsetRight="[dimension]" />
- swipeFrontView - Required - front view id.
- swipeBackView - Required - back view id.
- swipeActionLeft - Optional - left swipe action Default: 'reveal'
- swipeActionRight - Optional - right swipe action Default: 'reveal'
- swipeMode - Gestures to enable or 'none'. Default: 'both'
- swipeCloseAllItemsWhenMoveList - Close revealed items on list motion. Default: 'true'
- swipeOpenOnLongPress - Reveal on long press Default: 'true'
- swipeAnimationTime - item drop animation time. Default: android configuration
- swipeOffsetLeft - left offset
- swipeOffsetRight - right offset
然后就是MainActivity里面的代码
- package cn.zhongyun.swipelistviewtest;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.List;
- import com.fortysevendeg.swipelistview.BaseSwipeListViewListener;
- import com.fortysevendeg.swipelistview.SwipeListView;
- import android.os.Bundle;
- import android.widget.Toast;
- import android.app.Activity;
- public class MainActivity extends Activity {
- private SwipeListView mSwipeListView ;
- private SwipeAdapter mAdapter ;
- public static int deviceWidth ;
- private List<String> testData ;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- mSwipeListView = (SwipeListView) findViewById(R.id.example_lv_list);
- testData = getTestData();
- mAdapter = new SwipeAdapter(this, R.layout.package_row, testData,mSwipeListView);
- deviceWidth = getDeviceWidth();
- mSwipeListView.setAdapter(mAdapter);
- mSwipeListView.setSwipeListViewListener( new TestBaseSwipeListViewListener());
- reload();
- }
- private List<String> getTestData() {
- String [] obj = new String[]{"背对背拥抱","第几个一百天","江南","那些你很冒险的梦","醉赤壁","西界","爱与希望","你要的不是我","不潮不用花钱","只对你有感觉","简简单单"};
- List<String> list = new ArrayList<String>(Arrays.asList(obj));
- return list;
- }
- private int getDeviceWidth() {
- return getResources().getDisplayMetrics().widthPixels;
- }
- private void reload() {
- mSwipeListView.setSwipeMode(SwipeListView.SWIPE_MODE_LEFT);
- mSwipeListView.setSwipeActionLeft(SwipeListView.SWIPE_ACTION_REVEAL);
- // mSwipeListView.setSwipeActionRight(settings.getSwipeActionRight());
- mSwipeListView.setOffsetLeft(deviceWidth * 1 / 3);
- // mSwipeListView.setOffsetRight(convertDpToPixel(settings.getSwipeOffsetRight()));
- mSwipeListView.setAnimationTime(0);
- mSwipeListView.setSwipeOpenOnLongPress(false);
- }
-
- class TestBaseSwipeListViewListener extends BaseSwipeListViewListener{
- @Override
- public void onClickFrontView(int position) {
- super.onClickFrontView(position);
- Toast.makeText(getApplicationContext(), testData.get(position), Toast.LENGTH_SHORT).show();
- }
- @Override
- public void onDismiss(int[] reverseSortedPositions) {
- for (int position : reverseSortedPositions) {
- testData.remove(position);
- }
- mAdapter.notifyDataSetChanged();
- }
- }
- }
- package cn.zhongyun.swipelistviewtest;
- import java.util.List;
- import com.fortysevendeg.swipelistview.SwipeListView;
- import android.content.Context;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.view.ViewGroup;
- import android.widget.ArrayAdapter;
- import android.widget.Button;
- import android.widget.TextView;
- public class SwipeAdapter extends ArrayAdapter<String> {
- private LayoutInflater mInflater ;
- private List<String> objects ;
- private SwipeListView mSwipeListView ;
- public SwipeAdapter(Context context, int textViewResourceId,List<String> objects, SwipeListView mSwipeListView) {
- super(context, textViewResourceId, objects);
- this.objects = objects ;
- this.mSwipeListView = mSwipeListView ;
- mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
- }
- @Override
- public View getView(final int position, View convertView, ViewGroup parent) {
- ViewHolder holder = null ;
- if(convertView == null){
- convertView = mInflater.inflate(R.layout.package_row, parent, false);
- holder = new ViewHolder();
- holder.mFrontText = (TextView) convertView.findViewById(R.id.example_row_tv_title);
- holder.mBackEdit = (Button) convertView.findViewById(R.id.example_row_b_action_3);
- holder.mBackDelete = (Button) convertView.findViewById(R.id.example_row_b_action_2);
- convertView.setTag(holder);
- }else{
- holder = (ViewHolder) convertView.getTag();
- }
- holder.mBackDelete.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- mSwipeListView.closeAnimate(position);
- mSwipeListView.dismiss(position);
- }
- });
- String item = getItem(position);
- holder.mFrontText.setText(item);
- return convertView;
- }
- class ViewHolder{
- TextView mFrontText ;
- Button mBackEdit,mBackDelete ;
- }
- }
- <?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="match_parent"
- android:layout_height="80dp"
- android:tag="back"
- android:background="#eee"
- >
- <Button
- android:id="@+id/example_row_b_action_1"
- android:layout_width="0dp"
- android:background="@null"
- android:layout_height="wrap_content"
- android:layout_weight="1" />
- <Button
- android:id="@+id/example_row_b_action_2"
- android:layout_width="0dp"
- android:layout_marginLeft="10dp"
- android:layout_height="60dp"
- android:text="删除"
- android:layout_gravity="center"
- android:layout_weight="1" />
- <Button
- android:id="@+id/example_row_b_action_3"
- android:layout_width="0dp"
- android:text="编辑"
- android:layout_gravity="center"
- android:layout_height="60dp"
- android:layout_weight="1" />
- </LinearLayout>
- <RelativeLayout
- android:id="@+id/front"
- android:orientation="vertical"
- android:tag="front"
- android:background="#ffffff"
- android:layout_width="match_parent"
- android:layout_height="80dp" >
- <TextView
- android:id="@+id/example_row_tv_title"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:layout_centerInParent="true"
- android:textSize="18sp"
- />
- </RelativeLayout>
- </FrameLayout>
0 0
- 仿微信侧滑删除SwipeListView实例
- 仿微信侧滑删除SwipeListView实例
- android 仿微信侧滑删除SwipeListView实例
- 滑动删除(SwipeListView)
- SwipeListView滑动删除Android
- SwipeListView的一些实例讲解
- SwipeListView的一些实例讲解
- SwipeListView
- SwipeListView
- android--SwipeListView实现ListView滑动删除效果
- SwipeListView删除item保持列表位置不变
- Android SwipeListView 实现ListView的滑动删除效果
- Android SwipeListView 实现ListView的滑动删除效果
- SwipeListView 详解 实现微信,QQ等滑动删除效果
- SwipeListView 详解 实现微信,QQ等滑动删除效果
- SwipeListView 详解 实现微信,QQ等滑动删除效果
- 利用swipelistview完成qq聊天列表右滑删除功能
- SwipeListView 详解 实现微信,QQ等滑动删除效果
- 经典算法研究系列:七、深入浅出遗传算法
- c++与java在嵌套类方面的比较
- android studio Unable to load class 'org.codehaus.groovy.runtime.typehandling.ShortTypeHandling'
- iOS 新手误区,GET和POST的区别
- windows7安装oracle安装提示:指定的SID在本机上已经存在的解决方法汇总
- 仿微信侧滑删除SwipeListView实例
- java定义在局部的内部类、匿名内部类 (接《c++与java嵌套类比较》)
- excel批量隐藏多行/列为空值的单元格
- hibernate中集合映射关联映射小记
- android之ConnectivityManager简介,网络连接状态
- 恋你。我爱≠你爱
- mysql事务和锁InnoDB
- 重载与类型转换
- Java压缩图片util,可等比例宽高不失真压缩,也可直接指定压缩后的宽高