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

码农软件 · 软件分类 · Android UI 组件 · 2019-04-27 06:26:28

软件介绍

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 类作为示例实现单元格视图高度按其宽度变化的功能。

本文地址:https://codercto.com/soft/d/4470.html

软利器

软利器

保罗·莱文森 / 何道宽 / 复旦大学出版社 / 2011-5 / 35.00元

《软利器:信息革命的自然历史与未来》内容简介:何谓“软利器”?一种轻盈、透明、无质无形、难以把握的力量,由信息和物理载体构成,这就是媒介。了解媒介的属性和演化规律的人,常占尽优势:反之则身处险境。是不是有些危言耸听? 如果你看过保罗•莱文森的这本《软利器:信息革命的自然历史与未来》,或许就会深信不疑。在书中,莱文森如同一位经验丰富的航海家,带领你穿越媒介时空——你将邂逅古埃及的法老、古希腊的......一起来看看 《软利器》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换