摘要:嗯就是偶然看到了一个网站,于是经得站长同意后,决定写一个极致单手操作体验的练练手。咦发现问题了没对了,隐藏的时候带着整个一起向上滑了。这个继承自我写的,用于将直接绑定到一个上。等下,我们是网格布局耶网格布局控制提供了一个的方法。
嗯……就是偶然看到了一个网站,于是经得站长同意后,决定写一个~~极致单手操作体验的~~ App 练练~~手~~。
源代码戳:xingrz/meizhi
APK 下载回复 1024
咳,这里才是重点主要用了这些玩意:
Material Design
Volley + jsoup
Picasso
ObservableRecyclerView + GridLayoutManager
ViewPager
RecyclerView 网格布局关于 RecyclerView 的用法不重复了,可以戳我之前写过的一片博客。网格布局(Grid Layout)和线性布局(Linear Layout)大同小异,只是把 Layout Manager 指定为 GridLayoutManager,并指定要多少列(span)而已,看源代码吧。
GalleryAdapter adapter = new GalleryAdapter(this, this); GridLayoutManager layoutManager = new GridLayoutManager(this, 3); RecyclerView albums = (RecyclerView) findViewById(R.id.albums); albums.setHasFixedSize(true); albums.setLayoutManager(layoutManager); albums.setAdapter(adapter);向上滚动隐藏 Action Bar
我知道你们想要这个的。
祭出神器:ksoichiro/Android-ObservableScrollView
compile("com.github.ksoichiro:android-observablescrollview:1.2.0") { // 显然我们希望用我们自己项目里引用的 Support Library // 所以把它引用的这个依赖排除掉吧 exclude group: "com.android.support", module: "recyclerview-v7" }
这位大神呢,把 ScrollView ListView WebView RecyclerView 等等一大堆可滚动控件都做了二次开发,把触摸事件做了处理。
public class GalleryActivity extends ActionBarActivity implements ObservableScrollViewCallbacks { private ObservableRecyclerView albums; @Override protected void onCreate(Bundle savedInstanceState) { /* ... */ albums = (ObservableRecyclerView) findViewById(R.id.albums); albums.setScrollViewCallbacks(this); /* ... */ } @Override public void onUpOrCancelMotionEvent(ScrollState scrollState) { ActionBar actionBar = getSupportActionBar(); if (scrollState == ScrollState.UP) { if (actionBar.isShowing()) { actionBar.hide(); } } else if (scrollState == ScrollState.DOWN) { if (!actionBar.isShowing()) { actionBar.show(); } } } }
编译,运行。咦?发现问题了没?对了,ActionBar 隐藏的时候带着整个 RecyclerView 一起向上滑了。
以前用 ListView 的做法是 addHeaderView 在顶部加一个和 ActionBar 等高的占位 View 对不?
RecyclerView 加头额,你说 RecyclerView 哪来的 addHeaderView?嗯,为了避免我懒得码太多字的尴尬,我已经封装好一个 HeaderListRecyclerAdapter 了。这个继承自我写的 ListRecyclerAdapter,用于将 List
好了,现在我们稍微迂回地成功地在 RecyclerView 最开头放了一个和 ActionBar 同高的占~~坑~~位 View。等下,我们是网格布局耶……
网格布局控制GridLayoutManager 提供了一个 setSpanSizeLookup() 的方法。可以让你传入一个继承自 GridLayoutManager.SpanSizeLookup 的类,在里面你可以决定每个 position 上的项应该跨越多少列。既然是头部,那么就应该和 span size 一致吧:HeaderSpanSizeLookup
public class HeaderSpanSizeLookup extends GridLayoutManager.SpanSizeLookup { private final GridLayoutManager layoutManager; public HeaderSpanSizeLookup(GridLayoutManager layoutManager) { this.layoutManager = layoutManager; } @Override public int getSpanSize(int position) { return position == 0 ? layoutManager.getSpanCount() : 1; } }
好像我又编不下去了……
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/12195.html
摘要:是以后的主流设计风格,现在已经越来越多的遵循的设计规范来进行开发,是每个开发者必学的基础技术。 本人目前正在找工作,想了解我的详细情况请移步到我的 网页版简历 ,希望能得到各位的推荐,谢谢! 关于 Material Design 在这里我就不在多做介绍了,想必做Android开发的 都听过它的大名 ,甚至用过无数次了。Material Design 是以后 Android 的主流设计风...
摘要:框架基于的一款新闻阅读掘金,一款新闻阅读框架,基于,基本涵盖了当前端开发最常用的主流框架,基于此框架可以快速开发一个。本文已授权任阅小说阅读器,高仿追书神器掘金任阅小说阅读器。掘金清风音乐,一款安卓音乐播放器,基于。 AndroidFire框架--基于 Material Design+MVP+RxJava+Retrofit+Glide的一款新闻阅读 App - 掘金AndroidFir...
摘要:掘金该应用内容灵感来源于应用。理财计算器掘金理财计算器本文原创,转载请注明出处。前言最云阅一个仿网易云音乐,使用及豆瓣开发的开源项目掘金一款基于网易云音乐,使用及豆瓣开发的符合阅读类的开源项目。 [[源码] Android 不要错过的 7 个完整项目学习 - Android - 掘金](https://juejin.im/entry/58ba1...上周推荐了一个商业课程,很多人由于没...
摘要:最近老是在重装系统,每次重装就要重新配置环境,安装软件,安装插件。因为基本只有这个插件,才可以设置一个文件夹下三个项目能分别传到不同的服务器中。在全球最大的同性交友网站中,只要鼠标悬停到一个项目上时,就会在一个弹窗显示该项目的信息。 最近老是在重装系统,每次重装就要重新配置环境,安装软件,安装插件。每次重装的时候,都不知道自己以前到底用过什么软件插件。所以,还是写一篇文章记录下来,顺便...
摘要:最近老是在重装系统,每次重装就要重新配置环境,安装软件,安装插件。因为基本只有这个插件,才可以设置一个文件夹下三个项目能分别传到不同的服务器中。在全球最大的同性交友网站中,只要鼠标悬停到一个项目上时,就会在一个弹窗显示该项目的信息。 最近老是在重装系统,每次重装就要重新配置环境,安装软件,安装插件。每次重装的时候,都不知道自己以前到底用过什么软件插件。所以,还是写一篇文章记录下来,顺便...
阅读 1921·2021-11-23 09:51
阅读 2571·2021-11-22 15:35
阅读 2343·2021-09-22 10:01
阅读 2807·2019-08-30 15:53
阅读 884·2019-08-30 14:04
阅读 3160·2019-08-29 12:39
阅读 1641·2019-08-28 17:57
阅读 929·2019-08-26 13:39