协程是什么

协程实际上是一个轻量级的线程,可以挂起并稍后恢复

阅读全文 »

定义

为其他对象提供一种代理以控制对这个对象的访问

阅读全文 »

简介

最近看到头条的首页顶部搜索框有一个切换hint文字的动画效果,比较好奇它是怎么实现的,经过一番探索发现这个顶部的搜索框并不是真正的搜索框,点击之后是直接跳转到搜索界面,本身并不是一个EditText。这样的实现方式让我顿时感觉索然无味,同时不禁思考,难道不能在一个EditText控件上实现这样的效果吗?百度、google了一番发现并没有找到相关的效果实现,于是决定自己撸一个。起初并没有头绪,后来想起来google官方出的TextInputLayout好像有涉及到EditText的hint动画效果,就研究了一番TextInputLayout的源码,并参考源码实现本文的hint轮播效果。头条与本文实现的效果如下图
在这里插入图片描述
在这里插入图片描述

阅读全文 »

思路

实现LoadMore功能主要是从Adapter入手,通过在onAttachedToRecyclerView方法里给RecyclerView添加滑动监听来实现。一种思路是实现一个LoadMoreAdapter基类让其他的Adapter继承来获得load more的能力,但是这样的实现方式感觉有点侵入原有的Adapter代码,而且不够灵活,所以本文采用代理原有Adapter的方式来实现。

阅读全文 »

概述

一开始的时候尝试通过Android的事件分发机制来实现,但是child一旦消耗事件,那么后续事件是不会传给Parent的,只能重写dispatchTouchEvent来拦截,这样做相当于重写了Android的事件分发机制,我自认水平是不够的。随后阅读了Android官方刷新空间SwipeRefreshLayout,发现是使用的NestedScrolling机制,具体使用可以看鸿洋大神的这篇文章https://blog.csdn.net/lmj623565791/article/details/52204039 所以本篇文章就使用NestedScrolling机制来实现针对RecyclerView的下拉刷新功能,别的控件暂不支持。

阅读全文 »

背景

之前面试的时候遇到一个有关滑动事件的问题,让我十分费解,后来查阅相关资料和源码才得以解决,问的是在一个RecyclerView中,有一个item为Button,如果在按下这个Button的同时进行滑动,Button是否能够保持焦点?相关事件是如何传递的?

阅读全文 »

简介

假设我们需要一个这样的效果,拖动子View的时候需要parent先滑动,等parent滑倒顶端的时候再让子View滑动。Android事件分发机制在parent处理事件的时候,没法再次把事件传递给子View(除非再来一个Down,开启一个新的事件序列),所以就需要用到NestedScrolling,也就是嵌套滑动机制。今天我们来实现如下效果
这里写图片描述
蓝色部分是子View,粉色是Parent,在向上滑动时,保证Parent首先滑动到顶端,向下滑动时保证子View首先滑倒底部。

阅读全文 »

子线程中的Toast

在写代码的时候发现一个现象,在子线程中使用Toast会crash,错误如下

阅读全文 »

题目描述

给定一个数组a[],长度为n,保证1<=a[i]<=n,找出1-n中所有未出现的数字,不使用额外空间且时间复杂度为O(n).

阅读全文 »
0%