梯形网格视图开源库分析 AndroidStaggeredGrid

Apache
Java SHELL
跨平台
2014-01-03
叶秀兰

AndroidStaggeredGrid 是一个支持实现多行多列且可变尺寸的阶梯形网格视图的开源库。

StaggeredGridView 的开发是因为该开源作者在实现其Etsy app时发现Google的Android库中没有提供相关功能以实现其需求,即需要在landscape & portrait两种模式下显示不同的行、列,且能在模、竖屏都保持单元格显示同步, 运行稳定,还要支持自定义页头 & 页脚。

该库使用简单,可以通过作者提供的/sample app的源码了解使用细节,如图:

AndroidStaggeredGrid-1 AndroidStaggeredGrid-2

AndroidStaggeredGrid-weixin

总的来说使用该库只需3步:

1. 将 StaggeredGridView 加入到需要显示的布局文件中,如:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
<com.etsy.android.grid.StaggeredGridView
        android:id="@+id/grid_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:item_margin="8dp"
        app:column_count_portrait="2"
        app:column_count_landscape="3" />
 </FrameLayout>

2. 配置属性:

item_margin - The margin around each grid item (default 0dp).
column_count_portrait - The number of columns displayed when the grid is in portrait (default 2).
column_count_landscape - The number of columns displayed when the grid is in landscape (default 3).
grid_paddingLeft - Padding to the left of the grid. Does not apply to headers and footers (default 0).
grid_paddingRight - Padding to the right of the grid. Does not apply to headers and footers (default 0).
grid_paddingTop - Padding to the top of the grid. Does not apply to headers and footers (default 0).
grid_paddingBottom - Padding to the bottom of the grid. Does not apply to headers and footers (default 0).

3. 配置适配器,这与使用GridView/ListView时基本一样:

ListAdapter adapter = ...;
StaggeredGridView gridView = (StaggeredGridView) findViewById(R.id.grid_view);
gridView.setAdapter(adapter);

说明: 由于列宽在屏幕方向横竖变化时亦会变化, 网格视图需要每个单元格维护自身的宽高比例,该库提供了 DynamicHeightImageView 类作为示例实现单元格视图高度按其宽度变化的功能。

加载中

评论(0)

暂无评论

暂无资讯

暂无问答

GridView解决同一行item的高度不一样,如何同一行统一高度问题?

问题描述: 有时我们使用GridView会面对类似这种情况。 这是是不是一脸愣逼,我们理想情况是把他变成这样 保证同一行的item都是一样高这样就美观许多了 注意:上面的两张图片是盗图,用来作为...

2018/07/31 16:14
11
0
RecyclerView加载不同view实现效果--IT蓝豹

本项目由开发者:黄洞洞精心为初学者编辑RecyclerView的使用方法。 RecyclerView加载不同view实现效果,支持加载多个view,并且支持用volley获取数据,

2015/11/16 10:37
2.4K
0
一个很酷的加载loading效果

一个很酷的加载loading效果,自定义LeafLoadingView实现,LeafLoadingView继承view, 本例子主要由以下几点构成

2015/11/17 11:07
151
0
Android组件及UI框架大全

Android 是目前最流行的移动操作系统(还需要加之一吗?)。 随着新版本的不断发布, Android的功能也日益强大, 涌现了很多流行的应用程序, 也催生了一大批的优秀的组件。 本文试图将目前流行...

2015/07/13 01:11
509
0
Android开源项目第一篇——个性化控件(View)篇

本文为那些不错的Android开源项目第一篇——个性化控件(View)篇,主要介绍Android上那些不错个性化的View,包括ListView、ActionBar、Menu、ViewPager、Gallery、GridView、ImageView、Progr...

2014/10/09 14:51
219
0
Android组件及UI框架大全

Android 是目前最流行的移动操作系统(还需要加之一吗?)。 随着新版本的不断发布, Android的功能也日益强大, 涌现了很多流行的应用程序, 也催生了一大批的优秀的组件。 本文试图将目前流行...

2015/07/13 01:13
1.2K
1
GitHub 优秀的 Android 开源项目

原文地址为http://www.trinea.cn/android/android-open-source-projects-view/,作者Trinea 主要介绍那些不错个性化的View,包括ListView、ActionBar、Menu、ViewPager、Gallery、GridView、...

2015/03/26 10:51
1.6W
0
优秀的 Android 开源项目

优秀的 Android 开源项目

2015/04/06 22:17
1.5K
2
GitHub Top 100的Android开源库

GitHub Top 100的Android开源库 原创 2016-03-08 stormzhang AndroidDeveloper AndroidDeveloperAndroidDeveloper 微信号googdev 功能介绍包括不仅限于Android干货分享,有时候会写个段子,聊...

2016/07/22 21:48
68
0

没有更多内容

加载失败,请刷新页面

没有更多内容

返回顶部
顶部