文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Android FlexboxLayout布局

2023-09-24 06:02

关注

FlexboxLayout 布局

一、简介

FlexboxLayout 是2016年 Google I/O 上开源的一个布局控件,FlexBoxLayout是为Android带来了与 CSS Flexible Box Layout Module (CSS 弹性盒子)相似功能的开源布局控件。
FlexboxLayout 官方开源项目地址:https://github.com/google/flexbox-layout

二、使用

在项目的build.gradle引入flexbox

implementation 'com.google.android.flexbox:flexbox:3.0.0'

从1.1.0开始,该库预计将与AndroidX一起使用。如果还没有迁移到AndroidX,需使用1.0.0版本,如果使用1.1.0或更高版本,需迁移到AndroidX;
从2.0.0开始,FlexboxLayout的alignItems和alignContext的默认值已从stretch更改为flex_start;
从3.0.0开始,groupId更改为com.google.android.flexbox,且上传至google-maven。旧版本的groupId(com.google.android),可以从jcenter中引用,建议迁移至3.0.0;

在布局文件中添加flexbox:

<com.google.android.flexbox.FlexboxLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    android:layout_width="match_parent"    android:layout_height="match_parent"    app:flexWrap="wrap">    <TextView        android:layout_width="100dp"        android:layout_height="20dp"        android:background="#00FF00"        android:gravity="center"        android:text="1" />    <TextView        android:layout_width="150dp"        android:layout_height="20dp"        android:background="#FFFF00"        android:gravity="center"        android:text="2" />    <TextView        android:layout_width="60dip"        android:layout_height="20dp"        android:background="#FF00FF"        android:gravity="center"        android:text="3" />    <TextView        android:layout_width="200dip"        android:layout_height="20dp"        android:background="#FF0000"        android:gravity="center"        android:text="4" />com.google.android.flexbox.FlexboxLayout>

显示效果如下:

三、功能详解

FlexboxLayout属性

flexWrap

控制是否换行和换行的方向

属性值:

  <attr name="flexWrap">            <enum name="nowrap" value="0"/>            <enum name="wrap" value="1"/>            <enum name="wrap_reverse" value="2"/>  attr>

示例代码:

<com.google.android.flexbox.FlexboxLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    android:layout_width="match_parent"    android:layout_height="200dip"    android:background="#4A000000"    app:flexWrap="nowrap">                    <TextView        android:layout_width="100dp"        android:layout_height="20dp"        android:background="#00FF00"        android:gravity="center"        android:text="1" />    <TextView        android:layout_width="150dp"        android:layout_height="20dp"        android:background="#FFFF00"        android:gravity="center"        android:text="2" />    <TextView        android:layout_width="60dip"        android:layout_height="20dp"        android:background="#FF00FF"        android:gravity="center"        android:text="3" />    <TextView        android:layout_width="200dip"        android:layout_height="20dp"        android:background="#FF0000"        android:gravity="center"        android:text="4" />com.google.android.flexbox.FlexboxLayout>

flexDirection

控制主轴的方向,子元素的排列按照轴线方向依次添加

属性值:

 <attr name="flexDirection">     <enum name="row" value="0"/>     <enum name="row_reverse" value="1"/>     <enum name="column" value="2"/>     <enum name="column_reverse" value="3"/>attr>

示例代码:

<com.google.android.flexbox.FlexboxLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    android:layout_width="match_parent"    android:layout_height="200dip"    android:background="#4A000000"    app:flexDirection="row"    app:flexWrap="wrap">  <TextView      android:layout_width="100dp"      android:layout_height="20dp"      android:background="#00FF00"      android:gravity="center"      android:text="1" />  <TextView      android:layout_width="150dp"      android:layout_height="20dp"      android:background="#FFFF00"      android:gravity="center"      android:text="2" />  <TextView      android:layout_width="60dip"      android:layout_height="20dp"      android:background="#FF00FF"      android:gravity="center"      android:text="3" />  <TextView      android:layout_width="200dip"      android:layout_height="20dp"      android:background="#FF0000"      android:gravity="center"      android:text="4" />com.google.android.flexbox.FlexboxLayout>

alignItems

控制每行轴线上对齐方式

属性值:

<attr name="alignItems">    <enum name="flex_start" value="0"/>    <enum name="flex_end" value="1"/>    <enum name="center" value="2"/>    <enum name="baseline" value="3"/>    <enum name="stretch" value="4"/>attr>

示例代码:

<com.google.android.flexbox.FlexboxLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    android:layout_width="match_parent"    android:layout_height="200dip"    android:background="#4A000000"    app:flexDirection="row"    app:flexWrap="wrap"    app:justifyContent="flex_start"    app:alignContent="flex_start"    app:alignItems="flex_start">    <TextView        android:layout_width="100dp"        android:layout_height="20dp"        android:background="#00FF00"        android:gravity="center"        android:text="1" />    <TextView        android:layout_width="150dp"        android:layout_height="wrap_content"        android:paddingTop="10dip"        android:paddingBottom="20dip"        android:background="#FFFF00"        android:gravity="center"        android:text="2" />    <TextView        android:layout_width="60dip"        android:layout_height="wrap_content"        android:paddingBottom="20dip"        android:background="#FF00FF"        android:gravity="center"        android:text="3" />    <TextView        android:layout_width="200dip"        android:layout_height="20dp"        android:background="#FF0000"        android:gravity="center"        android:text="4" />com.google.android.flexbox.FlexboxLayout>

类似于

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pqekIpWl-1683346777203)(null)]

类似于 CSS Flexible Box Layout Module 中align-items:
图片来源

justifyContent

控制元素在主轴上的对齐方式,需要配合flexDirection或flexWrap属性来使用

属性值:

<attr name="justifyContent">     <enum name="flex_start" value="0"/>     <enum name="flex_end" value="1"/>     <enum name="center" value="2"/>     <enum name="space_between" value="3"/>     <enum name="space_around" value="4"/>     <enum name="space_evenly" value="5"/>attr>

示例代码:

<com.google.android.flexbox.FlexboxLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    android:layout_width="match_parent"    android:layout_height="200dip"    android:background="#4A000000"    app:flexDirection="row"    app:flexWrap="wrap"    app:justifyContent="flex_start">                                <TextView        android:layout_width="100dp"        android:layout_height="20dp"        android:background="#00FF00"        android:gravity="center"        android:text="1" />    <TextView        android:layout_width="150dp"        android:layout_height="20dip"        android:background="#FFFF00"        android:gravity="center"        android:text="2" />    <TextView        android:layout_width="60dip"        android:layout_height="20dp"        android:background="#FF00FF"        android:gravity="center"        android:text="3" />    <TextView        android:layout_width="200dip"        android:layout_height="20dp"        android:background="#FF0000"        android:gravity="center"        android:text="4" />com.google.android.flexbox.FlexboxLayout>

alignContent

控制主轴对齐方式(纵向对齐),与justifyContent(横向对齐)对应

属性值:

<attr name="alignContent">    <enum name="flex_start" value="0"/>    <enum name="flex_end" value="1"/>    <enum name="center" value="2"/>    <enum name="space_between" value="3"/>    <enum name="space_around" value="4"/>    <enum name="stretch" value="5"/>attr>

示例代码:

<com.google.android.flexbox.FlexboxLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    android:layout_width="match_parent"    android:layout_height="200dip"    android:background="#4A000000"    app:alignContent="flex_start"    app:flexDirection="row"    app:flexWrap="wrap"    app:justifyContent="flex_start">                                <TextView        android:layout_width="100dp"        android:layout_height="20dp"        android:background="#00FF00"        android:gravity="center"        android:text="1" />    <TextView        android:layout_width="150dp"        android:layout_height="20dp"        android:background="#FFFF00"        android:gravity="center"        android:text="2" />    <TextView        android:layout_width="60dip"        android:layout_height="20dp"        android:background="#FF00FF"        android:gravity="center"        android:text="3" />    <TextView        android:layout_width="200dip"        android:layout_height="20dp"        android:background="#FF0000"        android:gravity="center"        android:text="4" />com.google.android.flexbox.FlexboxLayout>

dividerDrawableHorizontal、showDividerHorizontal

dividerDrawableHorizontal:设置水平分隔线资源,配合showDividerHorizontal使用;showDividerHorizontal:设置水平分隔线显示方式

showDividerHorizontal属性值:

<attr name="showDividerHorizontal">    <flag name="none" value="0"/>    <flag name="beginning" value="1"/>    <flag name="middle" value="2"/>    <flag name="end" value="4"/>attr>

实例代码:

<com.google.android.flexbox.FlexboxLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    android:layout_width="match_parent"    android:background="#4A000000"    android:layout_height="200dip"    app:dividerDrawableHorizontal="@drawable/divider"    app:flexWrap="wrap"    app:showDividerHorizontal="none">                            <TextView        android:layout_width="100dp"        android:layout_height="20dp"        android:background="#00FF00"        android:gravity="center"        android:text="1" />    <TextView        android:layout_width="150dp"        android:layout_height="20dp"        android:background="#FFFF00"        android:gravity="center"        android:text="2" />    <TextView        android:layout_width="60dip"        android:layout_height="20dip"        android:background="#FF00FF"        android:gravity="center"        android:text="3" />    <TextView        android:layout_width="200dip"        android:layout_height="20dp"        android:background="#FF0000"        android:gravity="center"        android:text="4" />com.google.android.flexbox.FlexboxLayout>

分隔线资源divider.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android">    <size        android:width="10dip"        android:height="10dip" />    <solid android:color="#D1D1D1" />shape>

dividerDrawableVertical、showDividerVertical

dividerDrawableVertical:设置垂直分隔线资源,配合showDividerVertical使用;showDividerVertical:设置垂直分隔线显示方式

showDividerVertical属性值:

<attr name="showDividerVertical">    <flag name="none" value="0"/>    <flag name="beginning" value="1"/>    <flag name="middle" value="2"/>    <flag name="end" value="4"/>attr>

实例代码:

<com.google.android.flexbox.FlexboxLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    android:layout_width="match_parent"    android:layout_height="200dip"    android:background="#4A000000"    app:flexWrap="wrap"    app:dividerDrawableVertical="@drawable/divider"    app:showDividerVertical="none">                            <TextView        android:layout_width="100dp"        android:layout_height="20dp"        android:background="#00FF00"        android:gravity="center"        android:text="1" />    <TextView        android:layout_width="150dp"        android:layout_height="20dp"        android:background="#FFFF00"        android:gravity="center"        android:text="2" />    <TextView        android:layout_width="60dip"        android:layout_height="20dip"        android:background="#FF00FF"        android:gravity="center"        android:text="3" />    <TextView        android:layout_width="200dip"        android:layout_height="20dp"        android:background="#FF0000"        android:gravity="center"        android:text="4" />com.google.android.flexbox.FlexboxLayout>

分隔线资源同上divider.xml

dividerDrawable、showDivider

dividerDrawable:设置水平和垂直分隔线资源,配合showDivider使用;showDivider:设置水平和垂直分隔线显示方式

showDivider属性值:

<attr name="showDivider">    <flag name="none" value="0"/>    <flag name="beginning" value="1"/>    <flag name="middle" value="2"/>    <flag name="end" value="4"/>attr>

实例代码:

<com.google.android.flexbox.FlexboxLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    android:layout_width="match_parent"    android:layout_height="200dip"    android:background="#4A000000"    app:flexWrap="wrap"    app:dividerDrawable="@drawable/divider"    app:showDivider="none">                            <TextView        android:layout_width="100dp"        android:layout_height="20dp"        android:background="#00FF00"        android:gravity="center"        android:text="1" />    <TextView        android:layout_width="150dp"        android:layout_height="20dp"        android:background="#FFFF00"        android:gravity="center"        android:text="2" />    <TextView        android:layout_width="60dip"        android:layout_height="20dip"        android:background="#FF00FF"        android:gravity="center"        android:text="3" />    <TextView        android:layout_width="200dip"        android:layout_height="20dp"        android:background="#FF0000"        android:gravity="center"        android:text="4" />com.google.android.flexbox.FlexboxLayout>

分隔线资源同上divider.xml

maxLine

设置最大行数,只有flexWrap设置为wrap或wrap_reverse时,此属性才生效
示例代码:

<com.google.android.flexbox.FlexboxLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    android:layout_width="match_parent"    android:background="#4A000000"    android:layout_height="200dip"    app:flexWrap="wrap"    app:maxLine="1">            <TextView        android:layout_width="100dp"        android:layout_height="20dp"        android:background="#00FF00"        android:gravity="center"        android:text="1" />    <TextView        android:layout_width="150dp"        android:layout_height="20dp"        android:background="#FFFF00"        android:gravity="center"        android:text="2" />    <TextView        android:layout_width="60dip"        android:layout_height="20dip"        android:background="#FF00FF"        android:gravity="center"        android:text="3" />    <TextView        android:layout_width="200dip"        android:layout_height="20dp"        android:background="#FF0000"        android:gravity="center"        android:text="4" />com.google.android.flexbox.FlexboxLayout>

FlexboxLayout子控件属性

layout_order

指定子元素排序优先级,值越小越排在前面,默认值为1,类型为int

例如“1” 原本在第一位,layout_order设置为2,则会在整个控件最后:

<com.google.android.flexbox.FlexboxLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    android:layout_width="match_parent"    android:background="#4A000000"    android:layout_height="200dip"    app:flexWrap="nowrap">    <TextView        android:layout_width="100dp"        android:layout_height="20dp"        android:background="#00FF00"        android:gravity="center"        app:layout_order="2"        android:text="1" />                <TextView        android:layout_width="150dp"        android:layout_height="20dp"        android:background="#FFFF00"        android:gravity="center"        android:text="2" />    <TextView        android:layout_width="60dip"        android:layout_height="20dip"        android:background="#FF00FF"        android:gravity="center"        android:text="3"/>    <TextView        android:layout_width="200dip"        android:layout_height="20dp"        android:background="#FF0000"        android:gravity="center"        android:text="4" />com.google.android.flexbox.FlexboxLayout>

效果如下:

没有设置时:

layout_flexGrow

设置同一轴线剩余控件所占权重,类型为float
例如将“2”权重值layout_flexGrow设置为1,则会占满该行剩余空间:

<com.google.android.flexbox.FlexboxLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    android:layout_width="match_parent"    android:background="#4A000000"    android:layout_height="200dip"    app:flexWrap="nowrap">    <TextView        android:layout_width="100dp"        android:layout_height="20dp"        android:background="#00FF00"        android:gravity="center"        android:text="1" />    <TextView        android:layout_width="150dp"        android:layout_height="20dp"        android:background="#FFFF00"        android:gravity="center"        app:layout_flexGrow="1"        android:text="2" />                <TextView        android:layout_width="60dip"        android:layout_height="20dip"        android:background="#FF00FF"        android:gravity="center"        android:text="3"/>    <TextView        android:layout_width="20dip"        android:layout_height="20dp"        android:background="#FF0000"        android:gravity="center"        android:text="4" />com.google.android.flexbox.FlexboxLayout>

效果如下:

没有设置时:

layout_flexShrink

单个控件缩放比例,值越大缩放比例越大,如果设置了换行(flexWrap=“wrap或wrap_reverse”)则该属性无效,类型为float
例如将"2"缩放比例layout_flexShrink设置为2,则缩放更明显(双倍缩放):

<com.google.android.flexbox.FlexboxLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    android:layout_width="match_parent"    android:background="#4A000000"    android:layout_height="200dip"    app:flexWrap="nowrap">    <TextView        android:layout_width="100dp"        android:layout_height="20dp"        android:background="#00FF00"        android:gravity="center"        android:text="1" />    <TextView        android:layout_width="150dp"        android:layout_height="20dp"        android:background="#FFFF00"        android:gravity="center"        android:text="2" />    <TextView        android:layout_width="60dip"        android:layout_height="20dip"        android:background="#FF00FF"        android:gravity="center"        android:text="3"        app:layout_flexShrink="2" />                <TextView        android:layout_width="200dip"        android:layout_height="20dp"        android:background="#FF0000"        android:gravity="center"        android:text="4" />com.google.android.flexbox.FlexboxLayout>

效果如下:

没有设置时:

layout_flexBasisPercent

设置控件宽度占用父控件宽度的百分比,设置后,该控件原有宽度失效,父控件需明确宽度,此设置才生效

例如 将“1” layout_flexBasisPercent设置为50%,则宽度正好是父控件一半:

<com.google.android.flexbox.FlexboxLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    android:layout_width="match_parent"    android:background="#4A000000"    android:layout_height="200dip"    app:flexWrap="wrap">    <TextView        android:layout_width="100dp"        android:layout_height="20dp"        android:background="#00FF00"        android:gravity="center"        app:layout_flexBasisPercent="50%"        android:text="1" />    <TextView        android:layout_width="150dp"        android:layout_height="20dp"        android:background="#FFFF00"        android:gravity="center"        android:text="2" />    <TextView        android:layout_width="60dip"        android:layout_height="20dip"        android:background="#FF00FF"        android:gravity="center"        android:text="3" />    <TextView        android:layout_width="200dip"        android:layout_height="20dp"        android:background="#FF0000"        android:gravity="center"        android:text="4" />com.google.android.flexbox.FlexboxLayout>

效果如下:

layout_wrapBefore

设置控件是否强制换行,默认false,如果设置为true,则该控件强制换行展示

例如将"2",“4” layout_wrapBefore 设置为true,则该控件强制换行:

<com.google.android.flexbox.FlexboxLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    android:layout_width="match_parent"    android:background="#4A000000"    android:layout_height="200dip"    app:flexWrap="wrap">    <TextView        android:layout_width="100dp"        android:layout_height="20dp"        android:background="#00FF00"        android:gravity="center"        android:text="1" />    <TextView        android:layout_width="150dp"        android:layout_height="20dp"        android:background="#FFFF00"        android:gravity="center"        app:layout_wrapBefore="true"        android:text="2" />                <TextView        android:layout_width="60dip"        android:layout_height="20dip"        android:background="#FF00FF"        android:gravity="center"        android:text="3" />    <TextView        android:layout_width="200dip"        android:layout_height="20dp"        android:background="#FF0000"        android:gravity="center"        app:layout_wrapBefore="true"        android:text="4" />com.google.android.flexbox.FlexboxLayout>

效果如下:

layout_minWidth、layout_maxWidth、layout_minHeight、layout_maxHeight

layout_minWidth:设置该控件最小宽度,layout_maxWidth:设置该控件最大宽度
layout_minHeight:设置该控件最小高度,layout_maxHeight:设置该控件最大高度
例如,设置"3"的最大、最小宽度和高度都为90dip:

<com.google.android.flexbox.FlexboxLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    android:layout_width="match_parent"    android:background="#4A000000"    android:layout_height="200dip"    app:flexWrap="wrap">    <TextView        android:layout_width="100dp"        android:layout_height="20dp"        android:background="#00FF00"        android:gravity="center"        android:text="1" />    <TextView        android:layout_width="150dp"        android:layout_height="20dp"        android:background="#FFFF00"        android:gravity="center"        android:text="2" />    <TextView        android:layout_width="60dip"        android:layout_height="20dip"        android:background="#FF00FF"        android:gravity="center"        app:layout_minWidth="90dip"        app:layout_maxWidth="90dip"        app:layout_minHeight="90dip"        app:layout_maxHeight="90dip"        android:text="3" />                    <TextView        android:layout_width="200dip"        android:layout_height="20dp"        android:background="#FF0000"        android:gravity="center"        android:text="4" />com.google.android.flexbox.FlexboxLayout>

效果如下:

未设置时效果:

layout_alignSelf

设置单个控件的对齐方式,不同于app:alignItems是设置每行轴线上对齐方式

属性值:

<attr name="layout_alignSelf"><enum name="auto" value="-1"/><enum name="flex_start" value="0"/><enum name="flex_end" value="1"/><enum name="center" value="2"/><enum name="baseline" value="3"/><enum name="stretch" value="4"/>attr>

示例代码:

<com.google.android.flexbox.FlexboxLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    android:layout_width="match_parent"    android:background="#4A000000"    android:layout_height="200dip"    app:alignItems="flex_end"    app:flexWrap="wrap">    <TextView        android:layout_width="100dp"        android:layout_height="20dp"        android:background="#00FF00"        android:gravity="center"        android:text="1" />    <TextView        android:layout_width="150dp"        android:layout_height="wrap_content"        android:paddingTop="10dip"        android:paddingBottom="20dip"        android:background="#FFFF00"        android:gravity="center"        android:text="2" />    <TextView        android:layout_width="60dip"        android:layout_height="wrap_content"        android:paddingBottom="20dip"        android:background="#FF00FF"        app:layout_alignSelf="auto"        android:gravity="center"        android:text="3" />    <TextView        android:layout_width="200dip"        android:layout_height="20dp"        android:background="#FF0000"        android:gravity="center"        app:layout_wrapBefore="true"        android:text="4" />com.google.android.flexbox.FlexboxLayout>

实例代码效果如下:

FlexboxLayout在RecyclerView应用(FlexboxLayoutManager)

代码中设置RecyclerView的setLayoutManager为FlexboxLayoutManager,配置属性通过FlexboxLayoutManager设置即可:

RecyclerView recyclerView = (RecyclerView) context.findViewById(R.id.recyclerview);FlexboxLayoutManager layoutManager = new FlexboxLayoutManager(context);layoutManager.setFlexDirection(FlexDirection.COLUMN);layoutManager.setJustifyContent(JustifyContent.FLEX_END);recyclerView.setLayoutManager(layoutManager);

对于FlexboxLayout子控件属性设置方式如下:

mImageView.setImageDrawable(drawable);ViewGroup.LayoutParams lp = mImageView.getLayoutParams();if (lp instanceof FlexboxLayoutManager.LayoutParams) {    FlexboxLayoutManager.LayoutParams flexboxLp = (FlexboxLayoutManager.LayoutParams) lp;    flexboxLp.setFlexGrow(1.0f);    flexboxLp.setAlignSelf(AlignSelf.FLEX_END);}

使用FlexboxLayoutManager优势是:RecyclerView有屏幕外部控件回收复用机制,相对于直接使用FlexboxLayout(大量的子控件时)减少内存消耗。
官方提供了一个在RecyclerView使用FlexboxLayout(FlexboxLayoutManager)可设置的属性对照表如下:

Attribute / FeatureFlexboxLayoutFlexboxLayoutManager (RecyclerView)
flexDirection
flexWrap✓ (except wrap_reverse)
justifyContent
alignItems
alignContent-
layout_order-
layout_flexGrow
layout_flexShrink
layout_alignSelf
layout_flexBasisPercent
layout_(min/max)Width
layout_(min/max)Height
layout_wrapBefore
Divider
View recycling-
Scrolling*1

*1 Partially possible by wrapping it with ScrollView. But it isn’t likely to work with a large set of views inside the layout. Because it doesn’t consider view recycling.

来源地址:https://blog.csdn.net/zping0808/article/details/130490848

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-移动开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯