移动开发

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

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

Android-推荐一个检测内存泄漏的库(LeakCanary)

图片来源网络,入侵必删 在Android开发当中,内存泄漏是会影响用户体验的。LeakCanary开源库是一个常见的定位内存泄漏的开源库,这篇博客来分享一下它的使用,让我们的应用更加的丝滑。 LeakCanary 一个帮助开发者检测内存泄漏以及Application Not Responding的开源库。更多具体的简介请查看wiki 引入项目 dependencies { // d

Delphi无法正确动态调用C++ dll库的几个原因

摘自: 本文说明delphi调用C++DLL库的几个问题,并给出解决方法。 1、问题一: delphi找不到dll中的函数,出现“无法定位程序输入点”的问题 如下图所示: 分析: 这是因为dll库开放的函数名和代码中的函数名不致导致的,比如myfunc的函数名生成dll后变为_myfu

Android动画原理分析

简单描述为:将View的一次大的属性变化拆分为多次小的属性变化,在每次VSYNC信号到来时,根据当前时间和插值器来计算当前View属性的值,然后给该View设置该属性值,直到动画执行完毕。其中Choreographer将动画拆分成一次次小的属性变化,Choreographer是动画的指挥者。理想情况下,属性刷新次数(动画拆分为多次小的属性变化)=动画执行时间/16.7ms。 我们从以下4个问题来讲

全面掌握组件化ARouter,即刻吊打面试官!

前言 为了实现组件化要解决的几个问题点,其中 页面跳转、组件间通信 的问题是使用了 ARouter 这个框架来解决的。ARouter确实是专门用于做组件化改造,官方是这么介绍的: 一个用于帮助 Android App 进行组件化改造的框架 —— 支持模块间的路由、通信、解耦 是时候对 ARouter 这个强大的框架做一个解析了:它是如何做到 页面跳转、组件间通信 的?我们能从ARrouter中

被迫开始学习Typescript —— class (有彩蛋哦)

TS 的 class 看起来和 ES6 的 Class 有点像,基本上差别不大,除了 可以继承(实现)接口、私有成员、只读等之外。 参考: 基本用法 我们可以定义一个 class,设置几个属性,然后设置一个方法,封装 Object.assign 简化reactive 的赋值操作。 创建自己的对象基类 im

Python面向对象编程-1

一、面向对象基本概念 世界上有很多人和事物,每一个都可以看做一个对象,而每个对象都有自己的属性和行为,对象与对象之间通过方法来交互。 面向对象是一种以“对象”为中心的编程思想,把要解决的问题分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个对象在整个解决问题的步骤中的属性和行为。 关注焦点----谁来做 二、类和对象 类是模板,对象 是根据 类 这个模板创建出来的,应该 先

scanpy踩坑实录

日常瞎掰   最近在分析scRNA-seq的数据,三个样本数据不大,用Seurat分析真的很香!奈何又要下载公共数据的样本,这样一捣腾,Seuart倒显得有些力不从心了,何也?没成想公共数据提供的矩阵里面有48万多个细胞,加上自有的两万多个细胞,共有50多万个细胞,这数据量用Seuart处理多少有点费劲了,怎么办?所以,很自然地就想到了scanpy,python处理大数据的能力比起R还是没话说的。

iOS之基于MVP架构实现view的复用

场景:如果一个包含头像、名字、自我介绍文案的自定义view在不同的列表cell的contentView中都存在,那么我们每个cell里都要去依赖这个view,但是可能不同列表的数据源模型model是不同的,那么我们需要cell.model = model赋值时,对于这个view而言,就有多个model对象,这样的代码就有点让人受不了,同一个给子控件赋值的操作因为model不同就要做多遍,怎么处理?

Dio网络封装以及数据转模型

一、为什么需要封装Dio 1、迁移代码 当组件库中的方法发生改变,需要迁移的时候,如果有多处地方用到,那么需要对使用到的每个文件都进行修改,非常的繁琐而且很容易出问题。 2、请求库切换 当不需要Dio库的时候,我们可以试随时方便切换到别的网络库。 3、统一配置 因为一个应用程序基本都是统一的配置方式,所以我们可以针对拦截器 、转换器 、 缓存 、统一处理错误 、代理配置、证书校验 等多个配置进行统