梯形网格视图开源库分析 AndroidStaggeredGrid
- 授权协议: Apache
- 开发语言: Java SHELL
- 操作系统: 跨平台
- 软件首页: https://github.com/etsy/AndroidStaggeredGrid
- 软件文档: https://github.com/etsy/AndroidStaggeredGrid/blob/master/README.md
软件介绍
AndroidStaggeredGrid 是一个支持实现多行多列且可变尺寸的阶梯形网格视图的开源库。
StaggeredGridView 的开发是因为该开源作者在实现其Etsy app时发现Google的Android库中没有提供相关功能以实现其需求,即需要在landscape & portrait两种模式下显示不同的行、列,且能在模、竖屏都保持单元格显示同步, 运行稳定,还要支持自定义页头 & 页脚。
该库使用简单,可以通过作者提供的/sample app的源码了解使用细节,如图:
总的来说使用该库只需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 类作为示例实现单元格视图高度按其宽度变化的功能。
Ordering Disorder
Khoi Vinh / New Riders Press / 2010-12-03 / USD 29.99
The grid has long been an invaluable tool for creating order out of chaos for designers of all kinds—from city planners to architects to typesetters and graphic artists. In recent years, web designers......一起来看看 《Ordering Disorder》 这本书的介绍吧!
