资讯专栏INFORMATION COLUMN

小试 Material Design:一大波养眼妹纸

el09xccxy / 1044人阅读

摘要:嗯就是偶然看到了一个网站,于是经得站长同意后,决定写一个极致单手操作体验的练练手。咦发现问题了没对了,隐藏的时候带着整个一起向上滑了。这个继承自我写的,用于将直接绑定到一个上。等下,我们是网格布局耶网格布局控制提供了一个的方法。

嗯……就是偶然看到了一个网站,于是经得站长同意后,决定写一个~~极致单手操作体验的~~ 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.Adapter 上。同一个项目里自己找吧……

好了,现在我们稍微迂回地成功地在 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 学习资料

    摘要:是以后的主流设计风格,现在已经越来越多的遵循的设计规范来进行开发,是每个开发者必学的基础技术。 本人目前正在找工作,想了解我的详细情况请移步到我的 网页版简历 ,希望能得到各位的推荐,谢谢! 关于 Material Design 在这里我就不在多做介绍了,想必做Android开发的 都听过它的大名 ,甚至用过无数次了。Material Design 是以后 Android 的主流设计风...

    yagami 评论0 收藏0
  • RxJavaAndroid - 收藏集 - 掘金

    摘要:框架基于的一款新闻阅读掘金,一款新闻阅读框架,基于,基本涵盖了当前端开发最常用的主流框架,基于此框架可以快速开发一个。本文已授权任阅小说阅读器,高仿追书神器掘金任阅小说阅读器。掘金清风音乐,一款安卓音乐播放器,基于。 AndroidFire框架--基于 Material Design+MVP+RxJava+Retrofit+Glide的一款新闻阅读 App - 掘金AndroidFir...

    Magicer 评论0 收藏0
  • app - 收藏集 - 掘金

    摘要:掘金该应用内容灵感来源于应用。理财计算器掘金理财计算器本文原创,转载请注明出处。前言最云阅一个仿网易云音乐,使用及豆瓣开发的开源项目掘金一款基于网易云音乐,使用及豆瓣开发的符合阅读类的开源项目。 [[源码] Android 不要错过的 7 个完整项目学习 - Android - 掘金](https://juejin.im/entry/58ba1...上周推荐了一个商业课程,很多人由于没...

    Rango 评论0 收藏0
  • 插件分享大会[不定期更新]

    摘要:最近老是在重装系统,每次重装就要重新配置环境,安装软件,安装插件。因为基本只有这个插件,才可以设置一个文件夹下三个项目能分别传到不同的服务器中。在全球最大的同性交友网站中,只要鼠标悬停到一个项目上时,就会在一个弹窗显示该项目的信息。 最近老是在重装系统,每次重装就要重新配置环境,安装软件,安装插件。每次重装的时候,都不知道自己以前到底用过什么软件插件。所以,还是写一篇文章记录下来,顺便...

    CastlePeaK 评论0 收藏0
  • 插件分享大会[不定期更新]

    摘要:最近老是在重装系统,每次重装就要重新配置环境,安装软件,安装插件。因为基本只有这个插件,才可以设置一个文件夹下三个项目能分别传到不同的服务器中。在全球最大的同性交友网站中,只要鼠标悬停到一个项目上时,就会在一个弹窗显示该项目的信息。 最近老是在重装系统,每次重装就要重新配置环境,安装软件,安装插件。每次重装的时候,都不知道自己以前到底用过什么软件插件。所以,还是写一篇文章记录下来,顺便...

    darkbug 评论0 收藏0

发表评论

0条评论

el09xccxy

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<