安卓MD风格的布局记录2

接上面的 实现一大块复杂的布局滑动离开界面,然后Tab栏能一直停留,下面通过List来展示数据。首先还是先看实现效果:

由于该界面是公司上线软件,因此初始的xml布局中是没有数据的,这个是一个fragment的布局,项目用了大量的Activity嵌套Fragment、Fragment嵌套Fragment实现,关于嵌套见别的记录。该布局最上方大概120dp空白处是一个轮播图,轮播图下发是固定的分类标签,再下发是一个公告栏,再下方白色空白是TabLayout,下方是ViewPager。


从上可见,一个LinearLayout里面包含了大量布局,然后设置了none滚动模式,滑动时会平滑的离开屏幕,最终TabLayout停留在屏幕上方。ViewPager中为Fragment,


通过RecylerView来展示数据(这里不用ListView的原因是RecyclerView已经实现了.NestedScrollChild与父布局的滑动事件不冲突)。下拉刷新通过最外层的SwipeRefreshLayout来实现(但是这里有一个坑,需要通过对AppBarLayout折叠状态的监听来设置SwipeRefreshLayout的Enable,即当AppBarLayout完全展开时才给予SwipeRefreshLayout拥有滑动事件,并能产生下拉刷新事件),SwipeRefreshLayout也实现了NestedScrollChild与NestedScrollParent,上啦加载更多通过监控NestedScrollView的滑动状态来实现。


还有更负责的布局,即Activity中包含了CoordinatorLayout+AppBarLayout+CollapsingToolbarLayout+Toolbar模式的布局,然后Activity中为CoordinatorLayout设置Behevior的View为FramLayout,里面又加载了一个Fragment,Fragment又是CoordinatorLayout+AppBarLayout+CollapsingToolbarLayout+Toolbar+TabLayout+ViewPager的模式。这样实现了一个竞拍详情页的布局。


最上方为标题栏,并通过监听AppBar的状态显示不同的背景色。上方白色空白为轮播图,下方红色栏为滑动胡折叠在顶部的布局,还包含了一个倒计时控件。下发空白部分为加载Fragment的地方。

Fragment中显示的一大块滑动时都平滑的离开屏幕,下发的TabLayout悬停在顶部,ViewPager中加载3个Fragment。



另外再记录下这套有下拉刷新与上拉加载功能的界面,无数据时显示暂无数据页面。能够适用于MD风格中的NestedScroll事件。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容