作家
登录

【Android】这效果,我没法描述

作者: 来源: 2017-11-09 17:23:21 阅读 我要评论

Tech Neo技巧沙龙 | 11月25号,九州云/ZStack与您一路商量云时代收集界线治理实践

媒介

  1. <br> 

比来接到一个需求,这需求让我表示很难堪。(下面是一些废话)

请求的效不雅是如许的,顶部有部分悬浮,接着是一些构造,鄙人面是几个可切换的Tab页面,然后滚动的时刻~~吧啦吧啦吧啦吧啦~~ 照样直接看图吧

【Android】这效不雅,我没法描述

layout_scrollFlags:AppBarLayout供Children View应用的属性,一共有五种值:scroll,enterAlways,enterAlwaysCollapsed,snap,exitUntilCollapsed。具体的应用可以参考Android 具体分析AppBarLayout的五种ScrollFlags

【Android】这效不雅,我没法描述

重要就是顶部和Tab的悬浮,还有就是被顶掉落的那个效不雅。

【Android】这效不雅,我没法描述

听到要实现如许的效不雅,我抽屉那把砍产品专用菜刀已经擦掌磨拳了。

思路

先说说实现的思路吧,膳绫擎的效不雅大年夜致可以分成两个部分:

1、Tab向上滚动到顶部时悬浮

Tab滚动后悬浮在顶部嘛~~ 这效不雅应用CoordinatorLayout + AppBarLayout就能轻松实现。(什么?你还不懂这两个控件怎么应用?额,应当可以勉强看懂后面的内容)

2、顶部悬浮以及“被顶走”的效不雅

只要在CoordinatorLayout外面套一层FrameLayout,然后把这个顶部的构造改在膳绫擎。接着监听AppBarLayout的滚动,应用topMargin实现被“顶上去”的效不雅

拆分完毕,接下来就是实现了

实现

  • Tab的悬浮效不雅

应用CoordinatorLayout、AppBarLayout、TabLayout、ViewPager来实现Tab的悬浮效不雅

  1. <br> 

LinearLayout中设置app:layout_scrollFlags="scroll|exitUntilCollapsed" 而 TabLayout 不设置app:layout_scrollFlags属性

ViewPager中应用app:layout_behavior="@string/appbar_scrolling_view_behavior"

(CoordinatorLayout、AppBarLayout的具体用法我就不多说了)

然后,只要在Java代码中为ViewPager添加几个列表Fragment就能看到以下的效不雅(留意:列表弗成所以ListView,须要用RecyclerView)

【Android】这效不雅,我没法描述

到今朝为止,效不雅已经实现了大年夜半。最后值须要实现“被顶走”的效不雅就好了。

  • 顶部“被顶走”的效不雅

这时刻,构造稍微改变下。

在原有的基本上,套了个FrameLayout,顶部的悬浮部分可以经由过程FrameLayout来实现。如许也导致下面的构造被盖住了一部分,是以在LinearLayout中加了与悬浮部分雷同高度的空View。

构造是完成了,那个“被顶走”的效不雅怎么实现呢?这时刻只要在MainActivity中对AppBarLayout的滚动进行监听即可。

  1. @BindView(R.id.app_bar) 
  2.     AppBarLayout mAppBar; 
  3.     @BindView(R.id.sticky_view) 
  4.     View mStickyView; 
  5.     @BindView(R.id.header) 
  6.     View mHeader; 
  7.     private void setAppBarListener() { 
  8.         mAppBar.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() { 
  9.             @Override 
  10.             public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) { 
  11.                 //头部高度(除去被顶部覆盖的部分) 
  12.                 

      推荐阅读

      若相关程序员不幸逝世,他的开源软件会有人维护吗

    Tech Neo技巧沙龙 | 11月25号,九州云/ZStack与您一路商量云时代收集界线治理实践这就是Searls在处理Weirich开源项目中碰到的一个问题。 Weirich最受迎接的项目在他去世的时刻有合营治理者。然则Searl>>>详细阅读


    本文标题:【Android】这效果,我没法描述

    地址:http://www.17bianji.com/lsqh/38686.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)