Adnroid 自定义流式布局
一般常见的流式布局由两种,一种是横向的个数固定,列表按照竖向进行排列。另一种是横向先排,横向排满之后再竖向排列。而本框架实现是以第二种方式进行处理。
那么这个框架到底该如何使用呢?
首先引入资源
这里提供两种方式,引入资源文件。
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>
最后看看效果图:
Adnroid 自定义流式布局相关推荐
- android自定义流式布局思路,Android 自定义控件基础-流式布局
什么是流式布局?其实我们在平时遇到过,只是有可能叫不出它的名字. 如图: 如上图,就是一个流式布局的样式. &esmp;这里,将记录一下怎么实现这个功能.其实实现这个功能的方法,就是自定义Vi ...
- android自定义view流布局,Android控件进阶-自定义流式布局和热门标签控件
一.概述: 在日常的app使用中,我们会在android 的app中看见 热门标签等自动换行的流式布局,今天,我们就来看看如何 自定义一个类似热门标签那样的流式布局吧 类似的自定义换行流式布局控件.下 ...
- Android自定义流式布局-FlowLayout
很多App在搜索页时都有对热门标签的一个排列,而Android官方没有对应的布局控件,所以自己写了一个流式布局(也称标签布局)--FlowLayout. 为了大家使用的方便,没有添加自定义属性,所以需 ...
- Jetpack Compose 自定义流式布局
效果: @Composable fun StaggeredGrid(modifier: Modifier = Modifier,content: @Composable () -> Unit ) ...
- 自定义流式布局View
//或者说直接for for (int i = 0; i < 20; i++) { TextView txt = new TextView(this); ...
- 自定义View----滑动刻度尺与流式布局 实例(四)
2019独角兽企业重金招聘Python工程师标准>>> 近在系统学习自定义View这一块的知识,前面几篇基本都是理论知识,这篇博客着重从实战来加强对自定义View的理解与运用.实现的 ...
- 自定义 FlowLayout流式布局搜索框 加 GreenDao存取搜索记录,使用RecyclerView展示
输入框布局的shape <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android ...
- Android自定义控件之流式布局
效果图: 一.首先创建我 们的自定义流式布局 public class FlowLayoutView extends ViewGroup {public FlowLayoutView(Context ...
- Flutter: 弹性布局Flex(Expanded)、流式布局Wrap、Flow
用Android原生实现流式布局[实现例如app的很多标签]需要自定义View继承自ViewGroup,然后代码量也不小. 相关自定义View实现流式布局,请参考这位老兄的博客: https://bl ...
最新文章
- 电脑有独显内存还被占用_独显和集成显卡怎么分别
- IDC公布2017年亚太地区数据中心10大预测
- Postman---html中get和post的区别和使用
- 怎么在Ubuntu Scope中获取location地址信息
- Python基础--列表
- Android 笔记一
- 第一视角玩无人机,parrot推出配备VR眼镜的bebop2
- Wannafly交流赛1: D. 白兔的字符串(随机+EXKMP)
- php imagemagick 翻译目录
- 如何获取中间层的结果_如何从0开始做大数据治理(上)
- 利用HP优盘启动盘格式化工具制作U盘Dos启动盘
- php编程模块英文缩写_PHP版国家代码、缩写查询函数代码
- Leetcode 781 森林中的兔子
- shopnc route.php,shopnc商城专题页的伪静态支持
- JavaScript经典效果集[蓝色理想]
- 铜陵市商标注册申请流程以及阶段时间介绍
- python简单程序
- 分享五年码农生涯历程经验及2018总结 | 掘金年度征文
- Concurrency in C# Cookbook中文翻译 :1.3并发性概述:响应式编程入门(Rx)
- TIMO 后台管理系统 v2.0.1 发布,加入 jwt 身份验证组件,基于 Spring Boot
热门文章
- ssh远程连接报错:WARNING: POSSIBLE DNS SPOOFING DETECTED(已解决)
- 6-4 使用函数求素数和 (20 分)
- 从零开始学习VIO笔记 --- 第一讲:基础知识(四元数,李代数)
- 中鑫吉鼎|不同人生阶段的女性理财方式
- 2021-10-20 推荐一个在线视频格式转换的好网站https://www.zamzar.com/,我测试过mp4转到gif
- 推流yasea遇到问题,即调转摄像头算法
- ValueError: Length mismatch: Expected axis has 2 elements, new values have 1 elements
- AIX PowerPC体系结构及其溢出技术学习笔记(转)
- html是网页病毒吗,无弹窗浏览器 目前最具效果性的防网页病毒软件
- 计算机b s架构模式图,深入理解B/S架构