兰州网站建设,兰州网站建设公司,兰州小程序开发|兰州软件开发|兰州东方商易科技
在线客服,兰州网站建设|兰州APP开发|兰州小程序开发|兰州软件开发|兰州东方商易科技
首页>行业动态
在日常的app使用中,我们会在android 的app中看见 热门标签等自动换行的流式布局

在日常的app使用中,我们会在android 的app中看见 热门标签等自动换行的流式布局,今天,我们就来看看如何自定义一个类似热门标签那样的流式布局。下面我们就来详细介绍流式布局的应用特点以及用的的技术点。
1.流式布局的特点以及应用场景

        特点:当上面一行的空间不够容纳新的TextView时候,才开辟下一行的空间。
原理图:
在这里插入图片描述
场景:主要用于关键词搜索或者热门标签等场景
2.自定义ViewGroup

(1)onMeasure:测量子view的宽高,设置自己的宽和高
(2)onLayout:设置子view的位置
        onMeasure:根据子view的布局文件中属性,来为子view设置测量模式和测量值
测量=测量模式+测量值;
测量模式有3种:
        EXACTLY:表示设置了精确的值,一般当childView设置其宽、高为精确值、match_parent时,ViewGroup会将其设置为EXACTLY;
        AT_MOST:表示子布局被限制在一个较大值内,一般当childView设置其宽、高为wrap_content时,ViewGroup会将其设置为AT_MOST;
        UNSPECIFIED:表示子布局想要多大就多大,一般出现在AadapterView的item的heightMode中、ScrollView的childView的heightMode中;此种模式比较少见。
(3)LayoutParams
        ViewGroup LayoutParams :每个 ViewGroup 对应一个 LayoutParams; 即 ViewGroup -> LayoutParams
        getLayoutParams 不知道转为哪个对应的LayoutParams ,其实很简单,就是如下:
        子View.getLayoutParams 得到的LayoutParams对应的就是 子View所在的父控件的LayoutParams;
        例如,LinearLayout 里面的子view.getLayoutParams ->LinearLayout.LayoutParams
所以 咱们的FlowLayout 也需要一个LayoutParams,由于上面的效果图是子View的 margin,
所以应该使用MarginLayoutParams。即FlowLayout->MarginLayoutParams
3.代码

FlowLayoutView

/**
 * Created by zzs on 20/01/16.
 * 流式布局
 */
public class FlowLayoutView extends ViewGroup{
    public FlowLayoutView(Context context) {
        super(context);
    }

    public FlowLayoutView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

      //或ViewGroup中所有子元素的属性
    //否则只获取ViewGroup 的属性
    @Override
    public LayoutParams generateLayoutParams(AttributeSet attrs) {

二维码,兰州APP开发,兰州APP定制,兰州小程序开发,兰州微信小程序开发,兰州app软件定制
客服,兰州APP开发,兰州APP定制,兰州小程序开发,兰州微信小程序开发,兰州app软件定制
联系电话,兰州APP开发,兰州APP定制,兰州小程序开发,兰州微信小程序开发
联系电话:0931-8414525
技术支持:15719323307
投诉建议:18153688379
联系地址,兰州APP开发,兰州APP定制,兰州小程序开发,兰州微信小程序开发,兰州app软件定制
兰州市七里河区敦煌路街道中天健广场1幢718
兰州市西津西路16号兰州中心写字楼1单元2110
兰州市定西南路229号(甘肃省科学院)
ICP备案号:陇ICP备17003752号-2 甘公网安备 甘公网安备 6201032000477
联系我们,兰州APP开发,兰州APP定制,兰州小程序开发,兰州微信小程序开发,兰州app软件定制
联系我们,兰州APP开发,兰州APP定制,兰州小程序开发,兰州微信小程序开发,兰州app软件定制
联系我们,兰州APP开发,兰州APP定制,兰州小程序开发,兰州微信小程序开发,兰州app软件定制