啥也不说,先上个图:
往上滑动的时候,有两点:
- 透明度渐变显示个人主页标题栏,这个是覆盖在最上层的标题栏
- 当 Tab 栏滑动到主页下面时,固定不动了,下面的布局继续滑动
看下布局:
1 |
|
profile layout 的根布局有设置:
1 | app:layout_scrollFlags="scroll" |
使其能跟着界面一起滑动,那下面的 Tab 栏需要在滑动到标题栏下面的时候停止滑动,吸附在上面。如果没有标题栏,就不会有这篇文章了。加上标题栏之后,相当于:往上滑动,scroll 的布局滑出界面,然后 Tab 栏滑动到距离顶部一个标题栏的高度后固定不动,如果拿去标题栏,应该是还能看到一部分 scroll 布局的内容的。也就是说需要固定的布局距离顶部有一段距离。
起初想着这种需求能否利用 CoordinatorLayout、layout_scrollFlags 来实现,但是找了找,并没有发现类似功能的 Api。后面突发奇想:AppBarLayout 里面包裹了两个布局,给下面的 Tab 栏布局设置个 marginTop,这样应该就可以距离顶部一段距离了,然后给上面的距离设置个负数的 marginBottom,一正一负正好抵消,或许有作用?想没用,直接上代码:
1 | // 距离顶部的高度为 状态栏的高度 + 标题栏的高度(固定 48dp) |
然后试了一下效果,还真有用!因缺思厅!