240 发简信
IP属地:浙江
  • 120
    Android高阶转场动画-ShareElement完全攻略

    本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 看完本文你能学到什么: 1、ShareElement是什么以及基本用法2、理解ShareElement是如...

  • 120
    Android应用启动全流程分析(源码深度剖析)

    努比亚技术团队原创内容,转载请务必注明出处。 1.前言 从用户手指点击桌面上的应用图标到屏幕上显示出应用主Activity界面而完成应用启动,快的话往往都不需要一秒钟,但是这...

  • 120
    Android Input

    //www.greatytc.com/p/2bff4ecd86c9本篇博客主要是过一下Android Input的框架,在熟悉Android input框架后,以及...

  • 120
    Android图形显示系统(一)

    转载请注明出处:http://blog.csdn.net/a740169405/article/details/70548443 简介 本文讲解的内容是Android4.1以...

  • 120
    Jenkins一键发布「apk&ipa」 到Bugly

    背景 一大早刚到公司没多久,测试妹妹小韩跑过来:“老王,麻烦给我发一份xxx项目的最新安装包呗?” 老王:“啥,昨天不是发你一个了吗?” 小韩:“我要回归下昨天已解决的bug...

  • 120
    Android 之 Choreographer 详细分析

    UI 优化系列专题,来聊一聊 Android 渲染相关知识,主要涉及 UI 渲染背景知识、如何优化 UI 渲染两部分内容。 UI 优化系列专题 UI 渲染背景知识 《View...

  • 120
    Android 之你真的了解 View.post() 原理吗?

    UI 优化系列专题,来聊一聊 Android 渲染相关知识,主要涉及 UI 渲染背景知识、如何优化 UI 渲染两部分内容。 UI 优化系列专题 UI 渲染背景知识 《View...

  • 120
    Glide生命周期管理

    Glide生命周期管理 1.Glide特点 使用简单 可配置度高,自适应程度高 支持常见图片格式(jpg、png、gif、webp) 支持多种数据源(网络、本地、资源、Ass...

  • 120
    AOP 之 AspectJ 全面剖析 in Android

    AspectJ 是 Android 平台上一种比较高效和简单的实现 AOP 技术的方案。 相类似的方案有以下几种: AspectJ: 一个 JavaTM 语言的面向切面编程的...

  • 多人开发怎么解决冲突吗

    FlutterJsonBeanFactory插件json使用

    FlutterJsonBeanFactory是用来生成dart的json实体类和根据配置生成factory的idea全家桶的插件. 首先必须添加 intl: any 到 ...

  • 多人协作开发要怎么解决冲突

    FlutterJsonBeanFactory插件json使用

    FlutterJsonBeanFactory是用来生成dart的json实体类和根据配置生成factory的idea全家桶的插件. 首先必须添加 intl: any 到 ...

  • 120
    Android CoordinatorLayout之自定义Behavior

    一、认识CoordinatorLayout CoordinatorLayout作为support:design库里的核心控件,在它出现之前,要实现View之间嵌套滑动等交互操...

  • 180
    jhxlx ·

    快速删除时,之所以IndexOutOfIndexException。是因为在移除动画执行时,还可以操作View。所以会对同一个position执行多次mDatas.remove(position),最终导致数组越界。
    解决方案就是去抖动,防止按钮快速点击。

    通过Thread.sleep()虽然可以达到这个效果,但是略显复杂。
    可以参考下下面这种方式:

    // 两次点击按钮之间的点击间隔不能少于1000毫秒
    private static final int MIN_CLICK_DELAY_TIME = 1000;
    private static long lastClickTime;

    public static boolean isFastClick() {
    boolean flag = false;
    long curClickTime = System.currentTimeMillis();
    if ((curClickTime - lastClickTime) >= MIN_CLICK_DELAY_TIME) {
    flag = true;
    }
    lastClickTime = curClickTime;
    return flag;
    }

  • flutter网络请求

    在flutter中进行网络请求有多种方式,这里我使用的是dio。dio这个库被封装的很好,使用起来也很简单,但为了更方便我还是自己在做了简单的封装。整体代码如下 代码也很简单...