Android开发感悟Android资料自定义View系列

Android流式布局之FluidLayout

2016-05-29  本文已影响8453人  a57ecf3aaaf2

FluidLayout简介

FluidLayout是本人开源的一个项目,提供了流式布局的布局方式。除了Android中的LinearLayoutRelativeLayoutFrameLayoutGridLayout等常用布局方式,相信大家也曾有过流式布局的需求,比如各大软件中的标签、小说热搜列表等,都可能用到流式布局。

搜索热词

声明属性

FluidLayout支持3种布局方式,当每一个子布局的高度不相同时,可以实现如下布局:

  • top - 单行顶部对其
  • bottom - 单行底部对其
  • center - 单行垂直居中对齐

支持子view声明对其方式,以及父布局声明所有子view的对其方式,与常见的LinearLayout等布局方式使用方法相同。

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <declare-styleable name="FluidLayout">
        <attr name="gravity" >
            <flag name="top" value="0x30" />
            <flag name="bottom" value="0x50" />
            <flag name="center" value="0x11" />
        </attr>
    </declare-styleable>

    <declare-styleable name="FluidLayout_Layout">
        <attr name="layout_gravity">
            <flag name="top" value="0x30" />
            <flag name="bottom" value="0x50" />
            <flag name="center" value="0x11" />
        </attr>
    </declare-styleable>
</resources>

测量尺寸、控制布局

通过继承ViewGroup,实现onMeasure方法及onLayout方法。

自定义内部类LayoutParams

继承于ViewGroup.MarginLayoutParams,实现FluidLayout自己的布局属性,用于在子view中声明单独的对其方式。

包含如下三种自定义对其方式:

Gravity.TOPGravity.BOTTOMGravity.CENTER.

来看下最终的效果:

`FluidLayout `- 支持嵌套在`ScrollView`中使用

作者 @fynn
项目地址 github

PS:本文及项目由本人原创,未经许可不得转载。

上一篇 下一篇

猜你喜欢

热点阅读