【Android】自定义流式布局

作者:邹峰立,微博:zrunker,邮箱:[email protected],微信公众号:书客创作,个人平台:www.ibooker.cc。

本文选自书客创作平台第138篇文章。阅读原文 。

【Android】自定义流式布局_第1张图片
书客创作

一般常见的流式布局由两种,一种是横向的个数固定,列表按照竖向进行排列。另一种是横向先排,横向排满之后再竖向排列。而本框架实现是以第二种方式进行处理。

【Android】自定义流式布局_第2张图片
图片来源于网络

那么这个框架到底该如何使用呢?

首先引入资源

这里提供两种方式,引入资源文件。

1、在build.gradle文件中添加以下代码:

allprojects {
    repositories {
        maven { url 'https://jitpack.io' }
    }
}

dependencies {
    compile 'com.github.zrunker:ZFlowLayout:v1.0'
}

2、在maven文件中添加以下代码:


    
        jitpack.io
        https://jitpack.io
    



    com.github.zrunker
    ZFlowLayout
    v1.0

使用

使用该框架,只需要两步即可。

一、引入布局文件


二、动态添加子控件

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        FlowLayout flowLayout = findViewById(R.id.flowlayou);

        LayoutInflater inflater = LayoutInflater.from(this);
        for (int i = 0; i < 20; i++) {
            TextView textView = (TextView) inflater.inflate(R.layout.tag_textview, flowLayout, false);
            if (i == 3)
                textView.setText("Android1111" + i);
            else if (i == 6)
                textView.setText("Jave1111" + i);
            else if (i == 10)
                textView.setText("kotlin1111" + i);
            else
                textView.setText("测试" + i);
            flowLayout.addView(textView);
        }
    }
}

其中tag_textview为自定义子控件的布局文件,代码如下:



当然也可以把FlowLayout直接当做一个ViewGroup在布局文件中直接加入子控件,就不需要动态的添加子控件,如下:



    

    

    

    

    

    

    

    

    

    

    


最后看看效果图:

【Android】自定义流式布局_第3张图片
流式布局效果图

Github地址
阅读原文


【Android】自定义流式布局_第4张图片
微信公众号:书客创作

你可能感兴趣的:(【Android】自定义流式布局)