自定义流式布局View
//或者说直接for
for (int i = 0; i < 20; i++) {
TextView txt = new TextView(this);
txt.setText("第" + i + "条数据");
txt.setBackgroundResource(R.drawable.bg);
ViewGroup.MarginLayoutParams layoutParams = new ViewGroup.MarginLayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT);
txt.setPadding(30, 30, 30, 30);
layoutParams.setMargins(100, 100, 100, 100);
txt.setLayoutParams(layoutParams);
fl.addView(txt);
}
package com.example.dsover;import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewGroup;/*** Created by 红鼻子小黑 on 2018/10/25.*/public class FlowLayout extends ViewGroup {public FlowLayout(Context context) {this(context,null);}public FlowLayout(Context context, AttributeSet attrs) {this(context, attrs,0);}public FlowLayout(Context context, AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);}@Overrideprotected void onLayout(boolean changed, int l, int t, int r, int b) {measureChildren(0,0);int totalWidth = 0;int totalHeight = 0;for (int i = 0 ; i<getChildCount();i++){View view = getChildAt(i);if (totalWidth + view.getMeasuredWidth()>=getMeasuredWidth()){totalWidth = 0;totalHeight += view.getMeasuredHeight();}view.layout(totalWidth,totalHeight,totalWidth+view.getMeasuredWidth(),totalHeight+view.getMeasuredHeight());totalWidth += view.getMeasuredWidth();}}
}
//记这先按搜索跳转,布局就是上面的类所写的
package com.example.dsover;import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;public class LiushiActivity extends AppCompatActivity {private com.example.dsover.FlowLayout flowLayout;private EditText editText;private Button button;private TextView textView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_liushi);editText = findViewById(R.id.ed_liu);button = findViewById(R.id.btn_liu);flowLayout = findViewById(R.id.lius);button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {textView = new TextView(LiushiActivity.this);ViewGroup.MarginLayoutParams layoutParams = new ViewGroup.MarginLayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT);textView.setPadding(10, 10, 10, 10);layoutParams.setMargins(100, 100, 100, 100);textView.setLayoutParams(layoutParams);String ed_name = editText.getText().toString();textView.setText(ed_name);flowLayout.addView(textView);}});}
}
自定义流式布局View相关推荐
- android自定义view流布局,Android控件进阶-自定义流式布局和热门标签控件
一.概述: 在日常的app使用中,我们会在android 的app中看见 热门标签等自动换行的流式布局,今天,我们就来看看如何 自定义一个类似热门标签那样的流式布局吧 类似的自定义换行流式布局控件.下 ...
- android自定义流式布局思路,Android 自定义控件基础-流式布局
什么是流式布局?其实我们在平时遇到过,只是有可能叫不出它的名字. 如图: 如上图,就是一个流式布局的样式. &esmp;这里,将记录一下怎么实现这个功能.其实实现这个功能的方法,就是自定义Vi ...
- Android自定义流式布局-FlowLayout
很多App在搜索页时都有对热门标签的一个排列,而Android官方没有对应的布局控件,所以自己写了一个流式布局(也称标签布局)--FlowLayout. 为了大家使用的方便,没有添加自定义属性,所以需 ...
- Adnroid 自定义流式布局
一般常见的流式布局由两种,一种是横向的个数固定,列表按照竖向进行排列.另一种是横向先排,横向排满之后再竖向排列.而本框架实现是以第二种方式进行处理. 那么这个框架到底该如何使用呢? 首先引入资源 这里 ...
- Jetpack Compose 自定义流式布局
效果: @Composable fun StaggeredGrid(modifier: Modifier = Modifier,content: @Composable () -> Unit ) ...
- 自定义 FlowLayout流式布局搜索框 加 GreenDao存取搜索记录,使用RecyclerView展示
输入框布局的shape <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android ...
- 自定义View----滑动刻度尺与流式布局 实例(四)
2019独角兽企业重金招聘Python工程师标准>>> 近在系统学习自定义View这一块的知识,前面几篇基本都是理论知识,这篇博客着重从实战来加强对自定义View的理解与运用.实现的 ...
- Android自定义控件之流式布局
效果图: 一.首先创建我 们的自定义流式布局 public class FlowLayoutView extends ViewGroup {public FlowLayoutView(Context ...
- Flutter: 弹性布局Flex(Expanded)、流式布局Wrap、Flow
用Android原生实现流式布局[实现例如app的很多标签]需要自定义View继承自ViewGroup,然后代码量也不小. 相关自定义View实现流式布局,请参考这位老兄的博客: https://bl ...
最新文章
- Java语法基础-序列化
- if语句的一种使用失误
- MODE ——计算了 任意多个数字的平均值(知识点:for的循环)
- .net中XML编程总结
- java mysql 操作类_Java 数据库简单操作类
- Leecode大厂热题100道系列题解
- tensorflow生成图片标签_Tensorboard高维向量可视化 + 解决标签和图片不显示BUG
- java ssl 无证书_java – 如何修复SSL – 没有可用的证书
- springboot Java实现多文件的zip压缩操作 + 通过浏览器下载文件的两种方式
- java 获取ftp路径_Java Source 根据输入 ftp 地址 账号 密码 路径 读取提供路径下的文件...
- 点在多边形内 java_判断点在多边形内部的方法(Java版)
- 两波形相位差的计算值_有功功率、无功功率和视在功率该怎么计算?
- 读光驱时,提示“无法访问,函数不正确”错误提示
- Rplot函数图形参数设置
- python列表转化为数字信号的过程_如何用python写一个简单的数字信号处理计算器(文章末公开代码)?...
- Ble Mesh技术(九)之Friendship
- macbook系统占用硬盘大_Sketch占满MacBook200G硬盘的解决方法
- Kafka(二):生产者
- 阿里云服务器被入侵执行MoneroOcean(门罗币)挖矿脚本
- android 错误中英互译,中英文翻译器应用的官方Android版本v3.1.1
热门文章
- [论文研读] 2021A01 知识图谱在小米的应用与探索
- Spring Web Flow 入门demo(二)与业务结合 附源代码
- xsd 节点可循环_应用案例丨邦纳无线振动和温度监测解决方案在冷却循环水系统中的应用...
- 如何成为白帽子黑客?我建议你从这几个阶段开始学习
- 2019_团体程序设计天梯赛-L1-2 6翻了(15 分)
- 脉脉,互联网大厂最想收编的公司
- php文件包含漏洞解决方法,DzzOffice 1.2.2 /index.php 本地文件包含漏洞
- 互联网运营面试题_互联网运营、产品岗一定要看的面试题
- 整个小东西,在IDEA中自动生成PO、DAO、Mapper
- 几种百度云盘下载速度慢解决方法,彻底让你直接拉满宽带