美文网首页android UI自定义viewAndroid进阶之路
带你实现ViewGroup规定行数、item居中的流式布局

带你实现ViewGroup规定行数、item居中的流式布局

作者: 的一幕 | 来源:发表于2017-06-06 19:16 被阅读506次

    在写该文章之前自己也写了一个用RecyclerView实现的流式布局RecyclerView实现的流式布局,也得到一些关注,但是也有不少的朋友提出了相关的问题,比如想规定行数的流式布局,还有item高度不统一时动态显示item的位置问题。于是近两天就简单写了个ViewGroup实现的流式布局:

    这里在时给出了四种情况的用例:
    (一)文字统一高度,也就是默认的情况

    默认情况.gif

    这里详见:NormalLoadActivity

    (二)不同高度的文本,没设置居中显示的情况

    不同高度的文本,没设置居中显示的情况.gif
    这里详见:DiffHeightTextActivity

    (三)不同高度的文本,设置居中显示的情况

    不同高度的文本,设置居中显示的情况.gif

    这里详见:DiffHeightTextCenterActivity

    (四)规定行数的流式布局

    规定行数的文本.gif

    这里详见:LineFlowActivity

    属性:

     <declare-styleable name="FlowLayout">
            <!--文本是否居中-->
            <attr name="is_line_center" format="boolean" />
     </declare-styleable>
    
    <declare-styleable name="LineFlowLayout">
            <!--规定行数-->
            <attr name="flow_line_count" format="integer" />
    </declare-styleable>
    
    <declare-styleable name="ScrollFlowLayout">
            <!--上边界阴影颜色-->
            <attr name="effect_top_color" format="color" />
            <!--下边界阴影颜色-->
            <attr name="effect_bottom_color" format="color" />
            <!--滑动到顶部或底部是否需要阴影效果-->
            <attr name="need_effect" format="boolean" />
    </declare-styleable>
    

    gradle依赖

    allprojects {
            repositories {
                    ...
                    maven { url 'https://jitpack.io' }
            }
    }
    
    dependencies {
            compile 'com.github.1002326270xc:FlowView-master:v1.1'
    }
    

    后期添加(自带滑动结构的流式布局):

    自带滑动结构的流式布局.gif

    这里详见:ScrollFlowActivity
    thanks:这里滑动的处理借鉴的SuitLines(一个图标控件)、SwipeDelMenuLayout(侧拉菜单)

    关于我:

    email:a1002326270@163.com
    csdn:enter
    github:enter

    相关文章

      网友评论

      • 冰冰的冻结:能自定义布局吗 我有一个效果不知道能不能实现
      • 自由小子0918:调用notifyDataChanged方法也显示不出来数据呢,数据是从网络上获取的?
        自由小子0918:@的一幕 在adapter里也已经看到数据set到textview里了,但是界面上就没没显示出来
        自由小子0918:@的一幕 是同一对象呀,我把从网络上去下来的数据放到demo模拟联网的例子里也一样显示不出来
        的一幕:@自由小子0918 你的数据源应该不是同一个对象了吧。demo里面有模拟网络的例子啊
      • 虎皮猫大人22:可以做成3等分平分的吗
        的一幕:@虎皮猫大人22 可以。没问题的。只不过你需要知道行数后进行分块处理。最后一块不够平分的话也当一部分

      本文标题:带你实现ViewGroup规定行数、item居中的流式布局

      本文链接:https://www.haomeiwen.com/subject/xtdnfxtx.html