移动开发

Android ViewPager嵌套的手势冲突,分别用`内部拦截法` 和 `外部拦截法` 两种方式。看懂你就明白所有的手势处理的流程了

简介: 用内部拦截法 和 外部拦截法 两种方式处理两个横向的ViewPager嵌套的手势冲突 最终实现效果:按住右侧部分横滑就是滑动大ViewPager。类似抖音的首页 这个demo看懂你就明白所有的手势处理的流程了 github地址 功能: ✅Demo展示了 内部拦截法 和 外部拦截法 两种方式 ✅海量的代码注释,且注明了为什么要调用这行代码,如果不调用会怎么样 ✅看懂这个demo,所有的手势

Vue如何检测数组变化

原理分析: 在数据初始化时调用initData方法,然后通过new Observer对数据进行监测,然后对数据进行判断,如果是数组并且支持原型链,就会执行protoAugment让目标原型链指向arrayMethods,arrayMethods用来改写数组的原型方法。内部会采用函数劫持的方式,当用户调用这些方法(push,pop,shift,unshift,sort,splice,reverse)

Mac上的MKV视频播放神器:MPlayerX全面支持

本文还有配套的精品资源,点击获取 简介:在Mac OS中,由于原生支持的视频格式有限,许多用户在尝试播放MKV等非标准格式时会遇到问题。本文介绍了一款名为MPlayerX的媒体播放器,它能完美支持包括MKV在内的多种视频和音频格式。MPlayerX还提供自定义皮肤、字幕同步、硬件加速等高级功能,使用户能够

用继承实现粒子类

书名:代码本色:用编程模拟自然系统 作者:Daniel Shiffman 译者:周晗彬 ISBN:978-7-115-36947-5 目录 4.8 用继承实现粒子类   在粒子类上实践继承的用法。 1、简单的Particle类 class Particle { PVector position; PVector velocity; PVector acceleration;

笔记软件Notion宣布转向Native原生开发,Hybrid混合开发不行了吗?

著名的笔记软件Notion宣布其技术栈实现从Hybrid混合模式转向了Native原生开发,再次引发了关于前端开发应该选择原生iso和android开发,还是应该选择React Native、Ionic、Flutter、PhoneGap等混合开发框架的争论。 我参与过原生App的开发,也尝试过Hybrid混合模式的开发,亲身经历来说总结如下: Hybrid的优势: 1

对 Android 应用换肤方案的总结

虽然现在已经有很多不错的换肤方案,但是这些方案或多或少都存在自己的问题。在这篇文章中,我将对 Android 现有的一些动态换肤方案进行梳理,对其底层实现原理进行分析,然后对开发一个新的换肤方案的可能性进行总结。 1、通过自定义 style 换肤 1.1 方案的基本原理 这种方案是我之前用得比较多的一种方案。我在使用的时候也做了很多的调整。开源版本可以参考 Colorful 这个库. [图片上传失

【Android Studio】如何卸载干净(详细步骤)

Android SDK(软件开发工具包)是Android应用程序开发的重要工具,当你不再需要它、准备重新安装或迁移到其他系统时,完全卸载它是非常重要的步骤。因为一般电脑卸载 Android Studio 时容易落下一堆配置文件没删,卸载不干净导致无用文件占用空间或者影响其他版本软件的安装使用。总之,为什么需要完全卸

ThreadLocal的简单理解

[TOC] 一、背景 最近有人问我ThreadLocal是如何做到在每个线程中的值都是隔离的,此处写篇文章来简单记录下。 二、ThreadLocal解决的问题 该数据属于该线程Thread自身,别的线程无法对其影响。(需要注意:需要调用ThreadLocal的remove方法) 不存在线程安全问题。(因为ThreadLocal类型的变量只有自身的线程可以访问,所以这点是成立的。) 比如:

MySQL基本查询

目录Create插入替换Retrieve(读取)select(确定列)​where条件(确定行)order by语句limit(分页)Update(更新)Delete(删除)截断表去重表数据聚合统计聚合函数group by句子的使用Create插入 语法: INSE