自定义LayoutManager实现卡片滑动
前言 前面介绍了利用自定义ItemDecoration实现RecyclerView吸顶效果,重点就在onDraw -> ItemView -> onDrawOver的绘制流程,同时注意预留空间的利用。 今天介绍一个新的知识点与demo,利用自定义LayoutManager的方式实现卡片滑动。有时候系统提供的LayoutManager已经不能够满足我们的需求,这个时候我们就需要自定义LayoutManager。 卡片滑动效果介绍卡片滑动的效果如下图所示。 分析一下卡片效果,顶部的卡片是正常摆放,接着的后面两张会随着位置变化缩小、下移,产生视觉上的叠层效果,再然后的卡片就与第三张重叠摆放。可以滑动移除图片,下面的卡片会自动补全。 实现这样的效果突破点在于两点: 要实现这样重叠式布局的效果,我们就需要自定义LayoutManager,就像系统自带的LinearLayoutManager、GridLayoutManager一样。 滑动移除效果的实现,没有重写scrollVerticallyBy以及scrollHorizontallyBy,这就需要一个重要的帮助类Ite...
京东淘宝首页二级联动
说明:这篇文章主要用于作者临时观看,因为涉及版权问题,所以短时间内会删除 京东淘宝首页二级联动单点触摸与多点触摸####单点触摸 ####多点触摸 面试题 一个move事件 中间有多少个手指的信息->有多少个手指就有多少个手指信息->最多32个 Touch事件源码 上述的disallowIntercept及相关内容就是所谓的“尚方宝剑” 嵌套滑动 并且从上面可以看出NestedScrollView既可以做“父亲”,也可以做“孩子” “孩子”有三个版本 三个版本之间是的关系 同样“父亲”也是一样 版本2与版本1相比 增加了type 如惯性滑动效果 吸顶效果 onFinishInflate()中获取第一个孩子的第二个孩子,从下图可以看出也就是是第二个LinearLayout 继续嵌套滑动嵌套滑动->是由孩子主动的 触发的 google为了方便我们处理嵌套滑动,所以提供了这个帮助类 -> getScrollingChildHelper() while(p!=n...
括号问题
问题描述给出n对括号,请编写一个函数来生成所有的由n对括号组成的合法组合。 例如,给出n=3,解集为: “((()))”, “(()())”, “(())()”, “()()()”, “()(())” 数据范围:0<=n<=10 要求:空间复杂度O(n),时间复杂度O(2^n) 示例示例1 输入:1 返回值:[“()”] 示例2 输入:2 返回值:[“(())”,”()()”] 思路相当于一共n个左括号和n个右括号,可以给我们使用,我们需要依次组装这些括号。每当我们使用一个左括号之后,就剩下n-1个左括号和n个右括号给我们使用,结果拼在使用的左括号之后就行了,因此后者就是一个子问题,可以使用递归: 终止条件:左右括号都使用了n个,将结果加入数组。 返回值:每一级向上一级返回后续组装后的字符串,即子问题中搭配出来的括号序列。 本级任务:每一级就是保证左括号还有剩余的情况下,使用一次左括号进入子问题,或者右括号还有剩余且右括号使用次数少于左括号的情况下使用一次右括号进入子问题。 注意:我们需要保证左括号出现的次数比右括号多时我们再使用右...
按Z字形顺序打印二叉树
问题描述给定一个二叉树,返回该二叉树的之字形层序遍历,(第一层从左向右,下一层从右向左,一直这样交替)数据范围:0≤n≤1500,树上每个节点的val满足∣val∣≤1500要求:空间复杂度:O(n),时间复杂度:O(n) 示例 示例1 输入:{1,2,3,#,#,4,5}输出: [[1],[3,2],[4,5]]说明:如题面解释,第一层是根节点,从左到右打印结果,第二层从右到左,第三层从左到右。 思路这其实就是一个升级版的层序遍历.观察其特点,无非就是奇数层和偶数层的输出顺序不一样. 这样就有了初步的解题思路,设置标识符flag(可以为整数型,也可以为boolean类型,整数类型无非就是对奇偶数的判断).其余的思路就是层序遍历的思路,在每遍历新的一层之前,改变flag的值!flag(这里以boolean类型为例),然后就是利用Collections.reverse(list)对链表进行翻转.详情可看代码 这里,小编再提一下我初次遇到这道题的思路,前面的几乎一样,就是在实现链表反转这里,小编不熟悉Java库,没想到还有Colection.reverse这个方法可以用.所以,小...
第一次上传测试
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub. Quick StartCreate a new post$ hexo new "My New Post" More info: Writing Run server$ hexo server More info: Server Generate static files$ hexo generate More info: Generating Deploy to remote sites$ hexo deploy More info: Deployment









