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

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

首先引入资源

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

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

allprojects {repositories {maven { url 'https://jitpack.io' }}
}dependencies {compile 'com.github.zrunker:ZFlowLayout:v1.0'
}

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

<repositories><repository><id>jitpack.io</id><url>https://jitpack.io</url></repository>
</repositories><dependency><groupId>com.github.zrunker</groupId><artifactId>ZFlowLayout</artifactId><version>v1.0</version>
</dependency>

使用

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

一、引入布局文件

<cc.ibooker.zflowlayoutlib.FlowLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/flowlayou"android:layout_width="match_parent"android:layout_height="match_parent" />

二、动态添加子控件

public class MainActivity extends AppCompatActivity {@Overrideprotected 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);elsetextView.setText("测试" + i);flowLayout.addView(textView);}}
}

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

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_margin="5dp"android:background="@drawable/gridview_selector"android:padding="5dp" />

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

<cc.ibooker.zflowlayoutlib.FlowLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="wrap_content"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_margin="5dp"android:background="@drawable/gridview_selector"android:padding="5dp"android:text="张三" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_margin="5dp"android:background="@drawable/gridview_selector"android:padding="5dp"android:text="李四张三" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_margin="5dp"android:background="@drawable/gridview_selector"android:padding="5dp"android:text="王五李四张三" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_margin="5dp"android:background="@drawable/gridview_selector"android:padding="5dp"android:text="赵六王五李四张三" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_margin="5dp"android:background="@drawable/gridview_selector"android:padding="5dp"android:text="孙七赵六王五李四张三" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_margin="5dp"android:background="@drawable/gridview_selector"android:padding="5dp"android:text="周八孙七赵六王五李四张三" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_margin="5dp"android:background="@drawable/gridview_selector"android:padding="5dp"android:text="吴九周八孙七赵六王五李四张三" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_margin="5dp"android:background="@drawable/gridview_selector"android:padding="5dp"android:text="郑十吴九周八孙七赵六王五李四张三" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_margin="5dp"android:background="@drawable/gridview_selector"android:padding="5dp"android:text="Tom" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_margin="5dp"android:background="@drawable/gridview_selector"android:padding="5dp"android:text="zrunker" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_margin="5dp"android:background="@drawable/gridview_selector"android:padding="5dp"android:text="Android" /></cc.ibooker.zflowlayoutlib.FlowLayout>

最后看看效果图:

Github地址

Adnroid 自定义流式布局相关推荐

  1. android自定义流式布局思路,Android 自定义控件基础-流式布局

    什么是流式布局?其实我们在平时遇到过,只是有可能叫不出它的名字. 如图: 如上图,就是一个流式布局的样式. &esmp;这里,将记录一下怎么实现这个功能.其实实现这个功能的方法,就是自定义Vi ...

  2. android自定义view流布局,Android控件进阶-自定义流式布局和热门标签控件

    一.概述: 在日常的app使用中,我们会在android 的app中看见 热门标签等自动换行的流式布局,今天,我们就来看看如何 自定义一个类似热门标签那样的流式布局吧 类似的自定义换行流式布局控件.下 ...

  3. Android自定义流式布局-FlowLayout

    很多App在搜索页时都有对热门标签的一个排列,而Android官方没有对应的布局控件,所以自己写了一个流式布局(也称标签布局)--FlowLayout. 为了大家使用的方便,没有添加自定义属性,所以需 ...

  4. Jetpack Compose 自定义流式布局

    效果: @Composable fun StaggeredGrid(modifier: Modifier = Modifier,content: @Composable () -> Unit ) ...

  5. 自定义流式布局View

    //或者说直接for for (int i = 0; i < 20; i++) {             TextView txt = new TextView(this);          ...

  6. 自定义View----滑动刻度尺与流式布局 实例(四)

    2019独角兽企业重金招聘Python工程师标准>>> 近在系统学习自定义View这一块的知识,前面几篇基本都是理论知识,这篇博客着重从实战来加强对自定义View的理解与运用.实现的 ...

  7. 自定义 FlowLayout流式布局搜索框 加 GreenDao存取搜索记录,使用RecyclerView展示

    输入框布局的shape <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android ...

  8. Android自定义控件之流式布局

    效果图: 一.首先创建我 们的自定义流式布局 public class FlowLayoutView extends ViewGroup {public FlowLayoutView(Context ...

  9. Flutter: 弹性布局Flex(Expanded)、流式布局Wrap、Flow

    用Android原生实现流式布局[实现例如app的很多标签]需要自定义View继承自ViewGroup,然后代码量也不小. 相关自定义View实现流式布局,请参考这位老兄的博客: https://bl ...

最新文章

  1. 电脑有独显内存还被占用_独显和集成显卡怎么分别
  2. IDC公布2017年亚太地区数据中心10大预测
  3. Postman---html中get和post的区别和使用
  4. 怎么在Ubuntu Scope中获取location地址信息
  5. Python基础--列表
  6. Android 笔记一
  7. 第一视角玩无人机,parrot推出配备VR眼镜的bebop2
  8. Wannafly交流赛1: D. 白兔的字符串(随机+EXKMP)
  9. php imagemagick 翻译目录
  10. 如何获取中间层的结果_如何从0开始做大数据治理(上)
  11. 利用HP优盘启动盘格式化工具制作U盘Dos启动盘
  12. php编程模块英文缩写_PHP版国家代码、缩写查询函数代码
  13. Leetcode 781 森林中的兔子
  14. shopnc route.php,shopnc商城专题页的伪静态支持
  15. JavaScript经典效果集[蓝色理想]
  16. 铜陵市商标注册申请流程以及阶段时间介绍
  17. python简单程序
  18. 分享五年码农生涯历程经验及2018总结 | 掘金年度征文
  19. Concurrency in C# Cookbook中文翻译 :1.3并发性概述:响应式编程入门(Rx)
  20. TIMO 后台管理系统 v2.0.1 发布,加入 jwt 身份验证组件,基于 Spring Boot

热门文章

  1. ssh远程连接报错:WARNING: POSSIBLE DNS SPOOFING DETECTED(已解决)
  2. 6-4 使用函数求素数和 (20 分)
  3. 从零开始学习VIO笔记 --- 第一讲:基础知识(四元数,李代数)
  4. 中鑫吉鼎|不同人生阶段的女性理财方式
  5. 2021-10-20 推荐一个在线视频格式转换的好网站https://www.zamzar.com/,我测试过mp4转到gif
  6. 推流yasea遇到问题,即调转摄像头算法
  7. ValueError: Length mismatch: Expected axis has 2 elements, new values have 1 elements
  8. AIX PowerPC体系结构及其溢出技术学习笔记(转)
  9. html是网页病毒吗,无弹窗浏览器 目前最具效果性的防网页病毒软件
  10. 计算机b s架构模式图,深入理解B/S架构