iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Android仿QQ首页ListView左滑置顶、删除功能
  • 647
分享到

Android仿QQ首页ListView左滑置顶、删除功能

2023-05-30 16:05:06 647人浏览 薄情痞子
摘要

 Android 仿QQ首页ListView左滑置顶、删除等实现源码,具体内容如下效果图实现源码:package com.duguang.baseanimation.ui.listivew.deletelistview; 

 Android 仿QQ首页ListView左滑置顶、删除等实现源码,具体内容如下

效果图

Android仿QQ首页ListView左滑置顶、删除功能

实现源码:package com.duguang.baseanimation.ui.listivew.deletelistview;  
 

import android.content.Context; import android.util.AttributeSet; import android.util.Log; import android.util.TypedValue; import android.view.MotionEvent; import android.view.View; import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.Scroller; import android.widget.TextView;  import com.kayak.deletelistview.R;  public class SlideView extends LinearLayout {   private static final String TAG = "SlideView";   private Context mContext;  private LinearLayout mViewContent;  private RelativeLayout mHolder;  private Scroller mScroller;  private OnSlideListener mOnSlideListener;   private int mHolderWidth = 120;   private int mLastX = 0;  private int mLastY = 0;  private static final int TAN = 2;   public interface OnSlideListener {   public static final int SLIDE_STATUS_OFF = 0;   public static final int SLIDE_STATUS_START_SCROLL = 1;   public static final int SLIDE_STATUS_ON = 2;       public void onSlide(View view, int status);  }   public SlideView(Context context) {   super(context);   initView();  }   public SlideView(Context context, AttributeSet attrs) {   super(context, attrs);   initView();  }   private void initView() {   mContext = getContext();   mScroller = new Scroller(mContext);    setOrientation(LinearLayout.HORIZONTAL);   View.inflate(mContext, R.layout.activity_listview_delete_slide_view_merge, this);   mViewContent = (LinearLayout) findViewById(R.id.view_content);   mHolderWidth = Math.round(TypedValue.applyDimension(     TypedValue.COMPLEX_UNIT_DIP, mHolderWidth, getResources()       .getDisplayMetrics()));  }   public void setButtonText(CharSequence text) {   ((TextView)findViewById(R.id.delete)).setText(text);  }   public void setContentView(View view) {   mViewContent.addView(view);  }   public void setOnSlideListener(OnSlideListener onSlideListener) {   mOnSlideListener = onSlideListener;  }   public void shrink() {   if (getScrollX() != 0) {    this.smoothScrollTo(0, 0);   }  }   public void onRequireTouchEvent(MotionEvent event) {   int x = (int) event.getX();   int y = (int) event.getY();   int scrollX = getScrollX();   Log.d(TAG, "x=" + x + " y=" + y);    switch (event.getAction()) {   case MotionEvent.ACTION_DOWN: {    if (!mScroller.isFinished()) {     mScroller.abortAnimation();    }    if (mOnSlideListener != null) {     mOnSlideListener.onSlide(this,       OnSlideListener.SLIDE_STATUS_START_SCROLL);    }    break;   }   case MotionEvent.ACTION_MOVE: {    int deltaX = x - mLastX;    int deltaY = y - mLastY;    if (Math.abs(deltaX) < Math.abs(deltaY) * TAN) {     break;    }     int newScrollX = scrollX - deltaX;    if (deltaX != 0) {     if (newScrollX < 0) {      newScrollX = 0;     } else if (newScrollX > mHolderWidth) {      newScrollX = mHolderWidth;     }     this.scrollTo(newScrollX, 0);    }    break;   }   case MotionEvent.ACTION_UP: {    int newScrollX = 0;    if (scrollX - mHolderWidth * 0.75 > 0) {     newScrollX = mHolderWidth;    }    this.smoothScrollTo(newScrollX, 0);    if (mOnSlideListener != null) {     mOnSlideListener.onSlide(this,       newScrollX == 0 ? OnSlideListener.SLIDE_STATUS_OFF         : OnSlideListener.SLIDE_STATUS_ON);    }    break;   }   default:    break;   }    mLastX = x;   mLastY = y;  }   private void smoothScrollTo(int destX, int destY) {   // 缓慢滚动到指定位置   int scrollX = getScrollX();   int delta = destX - scrollX;   mScroller.startScroll(scrollX, 0, delta, 0, Math.abs(delta) * 3);   invalidate();  }   @Override  public void computeScroll() {   if (mScroller.computeScrollOffset()) {    scrollTo(mScroller.getCurrX(), mScroller.getCurrY());    postInvalidate();   }  }  } 

--结束END--

本文标题: Android仿QQ首页ListView左滑置顶、删除功能

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

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

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

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

下载Word文档
猜你喜欢
  • Android仿QQ首页ListView左滑置顶、删除功能
     Android 仿QQ首页ListView左滑置顶、删除等实现源码,具体内容如下效果图实现源码:package com.duguang.baseanimation.ui.listivew.deletelistview; ...
    99+
    2023-05-30
  • vue怎么实现仿qq左滑置顶删除组件
    这篇文章主要讲解了“vue怎么实现仿qq左滑置顶删除组件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue怎么实现仿qq左滑置顶删除组件”吧!效果图:HTML代码:主要的html代码:&l...
    99+
    2023-07-04
  • Android实现QQ侧滑(删除、置顶等)功能
    实现类似QQ滑动出现可操作项的功能,在网上看到有人自定义LinearLayout实现这个效果,但是灵活性有限。此demo使用开源项目SwipeLayout实现该功能。关于SwipeLayout的常用设置和属性,这里都做介绍,下面进入正题。一...
    99+
    2023-05-30
  • mpvue小程序如何实现仿qq左滑置顶删除组件
    小编给大家分享一下mpvue小程序如何实现仿qq左滑置顶删除组件,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!效果图:实现:1,上面说过mpvue的坑,比如里面的每一个的元素都是overf...
    99+
    2024-04-02
  • Android Recyclerview实现左滑删除功能
    本文实例为大家分享了Android Recyclerview实现左滑删除的具体代码,供大家参考,具体内容如下 1.先创建一个工具类 SlideRecyclerView public...
    99+
    2024-04-02
  • Android编程实现的首页左右滑动切换功能示例
    本文实例讲述了Android编程实现的首页左右滑动切换功能。分享给大家供大家参考,具体如下:很多软件会选择左右滑动的主界面,实现方式也很多,这里的仅供参考,勿喷。不多说什么了,相信大家看看代码就明白,自己也不善言辞,望大家谅解。自定义接口,...
    99+
    2023-05-30
    android 滑动 切换
  • 怎么在Android中利用ListView实现一个侧滑删除功能
    本篇文章给大家分享的是有关怎么在Android中利用ListView实现一个侧滑删除功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。需求:listView可以侧滑item,展...
    99+
    2023-05-31
    android listview roi
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作