给Android ListView添加删除item动画

给Android ListView添加删除item动画

给listview删除一个item的时候加上一个折叠动画,感觉效果会好一点。

步骤是当删除一个view,先用动画把view的高度改变,看上去就是折叠的效果。当动画完成的时候,再真正把item移除。

    private void deletePattern(final View view, final int position) {

        Animation.AnimationListener al = new Animation.AnimationListener() {
            @Override
            public void onAnimationStart(Animation animation) {

            }

            @Override
            public void onAnimationEnd(Animation animation) {
                mDBHelper.deleteCustomPattern(mPatternList.get(position));
                mPatternList.remove(position);
                mPatternAdapter.notifyDataSetChanged();
            }

            @Override
            public void onAnimationRepeat(Animation animation) {

            }
        };
        collapse(view, al);

    }

    private void collapse(final View view, Animation.AnimationListener al) {
        final int originHeight = view.getMeasuredHeight();

        Animation animation = new Animation() {
            @Override
            protected void applyTransformation(float interpolatedTime, Transformation t) {
                if (interpolatedTime == 1.0f) {
                    view.setVisibility(View.GONE);
                } else {
                    view.getLayoutParams().height = originHeight - (int) (originHeight * interpolatedTime);
                    view.requestLayout();
                }
            }

            @Override
            public boolean willChangeBounds() {
                return true;
            }
        };
        if (al != null) {
            animation.setAnimationListener(al);
        }
        animation.setDuration(300);
        view.startAnimation(animation);
    }

时间: 2024-11-07 08:09:13

给Android ListView添加删除item动画的相关文章

【android自定义控件】android ListView添加侧滑删除

为ListView添加炫酷的Item中带侧滑的删除,原理是利用item布局中的padding(Left和Right)属性为负值,来把删除的按钮隐藏在屏幕外.然后通过自定义ListView重写其中的OnTouchEvent通过手指坐标点的计算来处理事件,实现itemView的滚动,达到滑动出现删除菜单,本例中仅实现右向左滑出现删除按钮,大家可以根据自己需求,参照自定义ListView中事件处理做出左侧滑,右侧滑出现菜单,当然不仅仅局限于删除.更多灵活用法期待发觉. 首先上自定义的ListSlide

Android ListView实现不同item的方法和原理分析

ListView实现不同item的方法和原理分析 一问题抛出Listview是android里面的重要组件,用来显示一个竖向列表,这个没有什么问题:但是有个时候列表里面的item不是一样的,如下图,列表里面应该有3种类型的item  1. 头像在左边的气泡Item ,比如”今天下午我就不出来了,...”2. 头像在右边的气泡Item,比如”那就等着我发你好吧”3. 单张图片显示圆角图片item几种Item的风格是完全不同的,那么怎么实现呢? 二实现方法实现的方法我这里可以列举出两种1. 每个It

android listview添加headview

listview添加headview后的点击事件 1.头部view:设置view的点击时间,用于屏蔽listview的item的点击事件 <span style="white-space:pre"> </span>View headerView = getLayoutInflater().inflate(R.layout.listhead, null); Button btn = (Button) headerView.findViewById(R.id.but

Android 解决RecyclerView删除Item导致位置错乱的问题

RecyclerView的刷新分为内容变化和结构变化,结构变化比如remove和insert等并不会导致viewholder的更新,所以有时候我们使用 notifyItemRemoved(position); 或者使用 notifyItemInserted(position); item的位置并没有发生改变,或者位置发生错乱,很是奇怪诡异,需要重新调用 notifyDataSetChanged(); 才能刷新整个List每个Item的位置,但这样做会使得RecyclerView增加和删除的动画效

Android给ListView添加一个入场动画

动画是一个App体现良好交互的一种手段,通常的我们会看到很多App的ListView的Item都有一个入场动画例如: 可以看到,当进入界面加载ListView的Item的时候有一个向左滑动显示,并且淡入的动画.下面介绍一下实现方法: <ListView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:la

Android ListView滑动删除及响应事件详解

目标:实现类似QQ,微信的消息列表滑动删除 具体操作: 1. 主页面布局 首先在布局文件(本例是activity_main.xml)中引入ListView控件,并指定id(如下代码中黑体部分). <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" andr

android ListView 设置每个Item的高度

 最早,在android 4.4 中,我的项目中,对ListView 控件中Item 的高度采用JAVA文件中listView.setMinimumHeight(100)来控制,但是对手机系统升级到android 5.0以后,发现ListView 的设置,在XML文件中ListView 控件中利用minHeight,在JAVA文件中使用listView.setMinimumHeight(100)都不管用了!! 经过一番折腾,最后在Item 对应的XML文件中,对应的LinearLayout控件中

ListView添加删除FooterView

在开发项目中,想要使异步或分页加载更好看一些,可以在ListView加上HeaderView或者footerView. 1.生成一个FooterView 在例子中,只是实现了一个进度条,右侧一个提示文本,所以可以简单写一个布局,然后通过LayoutInflater生成一个View. 2.在ListView.setAdapter()方法之前调用ListView.addFooterView( View ). 原因: 通过查看ListView的setAdapter方法,可以看到: [java] vie

Android ListView Animation 4种动画效果(贴上了GIF图)

Animation是android的动画效果的组件,可以实现绚丽的翻页.ListView和GridView的展示. 这blog简单介绍一下4种动画效果方式: 1.  AlphaAnimation               控制渐变透明的动画效果    如图: 2.  ScaleAnimation               控制尺寸伸缩的动画效果 如图: 3.  TranslateAnimation        控制画面平移的动画效果  如图: 4.  RotateAnimation