RecyclerView 滚动定位至目标 Item 并对齐顶部

关于使用LinearLayoutManager的RecyclerView需要滚动定位到指定Item,基于之前对ListView的使用,我们很容易就从RecyclerView中找到这样的方法。

scrollToPosition(int position)
smoothScrollToPosition(int position) 

但是使用过的同学都会发现它存在着这么一个问题:当你要定位的Item已经完全显示时,RecyclerView并不会产生滚动行为;当你要定位的Item并不完全显示或在显示区域以外时,RecyclerView虽然会产生滚动行为,但是只要Item完全显示后滚动行为就会停止,即Item有可能会在RecyclerView显示区域的顶部,也有可能在显示区域的底部。

这样一来,面对“需要滚动定位到Item时,Item对齐到顶部”的需求,就很尴尬了。 icon_eek.png

这尴尬事刚好我前几天就碰上了,在网上一搜发现很多文章介绍的方法都是想方设法地计算目标Item离当前位置的距离,用上了scrollBy(int x, int y)、smoothScrollBy(int dx, int dy),还要监听下滚动事件作最后的修正处理什么的。

我也确实按这些个方法试了下,最终效果不佳,尤其是我的每一个Item的高度是不固定的,甚至会出现Item高度大于RecyclerView高度的情况,也就是RecyclerView的显示区不能完全展示这个Item。所以还是自己动手丰衣足食啊~~ icon_mrgreen.png Demo扔在最后~~

- 阅读剩余部分 -

[Typecho插件] Smilies 1.1.0

Smilies 1.1.0

  • 在后台编辑文章或独立页面时,编辑页面右侧增加表情贴图;
  • 前端展示文章或独立页面时,解析表情贴图;
  • 修复插件配置页的交互Bug。

Smilies这个插件原本是给原生的评论系统增加表情贴图功能之用的,在我使用Typecho的时候拿到的是羽中的Smilies 1.0.7版本。这个新版的Smilies插件在Typecho 1.0上也能运行,所以刚一拿到的时候我就立马给换上了Hangouts的表情,用了起来。

因为用着不错,所以我也给Babycong的博客用上了这个插件……

然后,随之而来的就是Babycong对表情功能更进一步的需求——在文章里发表情!哈哈,不想码字的懒人啊,这就是所谓的「字数不够,表情来凑」。 icon_arrow.png

正因为有这个需求,所以在羽中的Smilies 1.0.7 上进行个性化的修改了。 icon_lol.png

- 阅读剩余部分 -

Bento——近距接触,想放就放

开篇当然是要感谢一下「笔戈玩」给我这个试用的机会啦!这是我第一次在笔戈玩上进行的试用申请,也很荣幸第一次就获得了试用名额。下面就闲话少说,直奔主题吧~

Bento——近距接触,想放就放

Bento是Oaxis出品的一款近距离接触式音箱,形如其名——「Bento」,像一个饭盒一样,有方有圆,外表简单干练。目前Bento有黑白两款,我拿到的是黑色版的,但我想白色版的视觉效果应该会更胜一筹。

- 阅读剩余部分 -

人生是奔波的

看上去博客好像断更了有一段时间了,其实中间有文章在写的,只是前段时间工作比较紧张,一直都没有写完,所以文章就一直停留在草稿阶段没有发布出来。

今天倒是突然有感,小更一下吧!

「人生是奔波的」,为什么这样说,其实也是毕业后开始工作了才感悟出来的。因为上班的路途算是比较遥远,一大早出门上班,晚上到家吃个饭就可以洗洗睡了,也能算是早出晚归了吧,所以工作日的时候感觉在为生活而奔波着;休息日就那么两天一个周末,平日里除了工作就没干过别的事了,总要玩一下、娱乐一下吧,于是休息日就在为娱乐、消遣而奔波。

回头一看,其实所有的时间,7X24小时,基本都是在不断地奔波着~