android适配手机升级:最新布局FlexboxLayout替代LinearLayout(支持RecycleView)

android:text=“textview5” />

</com.google.android.flexbox.FlexboxLayout>

  • Flexboxlayout 5大布局属性之-justifyContent

这里写图片描述

1、flex_start(默认值):左对齐

2、flex-end:右对齐

3、center: 居中

4、space-between:两端对齐,控件之间的间隔相等

5、space-around:每个控件距离两侧的间隔相等(项目之间的间隔比项目与边框的间隔大一倍)

详细对应的属性如下:

1、flex_start(默认值):左对齐

这里写图片描述

<?xml version="1.0" encoding="utf-8"?>

<FrameLayout 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”>

<com.google.android.flexbox.FlexboxLayout

android:id=“@+id/flexbox_layout”

android:layout_width=“match_parent”

android:layout_height=“wrap_content”

app:justifyContent=“flex_start”>

<TextView

android:layout_width=“80dp”

android:layout_height=“80dp”

android:gravity=“center”

android:padding=“5dp”

android:text=“flex_start(默认值):左对齐” />

<TextView

android:id=“@+id/textview1”

android:layout_width=“80dp”

android:layout_height=“80dp”

android:background=“#ff0202”

android:gravity=“center”

android:text=“textview1” />

<TextView

android:id=“@+id/textview2”

android:layout_width=“80dp”

android:layout_height=“80dp”

android:background=“#ffc402”

android:gravity=“center”

android:text=“textview2” />

</com.google.android.flexbox.FlexboxLayout>

2、flex-end:右对齐

这里写图片描述

<?xml version="1.0" encoding="utf-8"?>

<FrameLayout 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”>

<com.google.android.flexbox.FlexboxLayout

android:id=“@+id/flexbox_layout”

android:layout_width=“match_parent”

android:layout_height=“wrap_content”

app:justifyContent=“flex_end”>

<TextView

android:layout_width=“80dp”

android:layout_height=“80dp”

android:gravity=“center”

android:padding=“5dp”

android:text=“flex-end:右对齐” />

<TextView

android:id=“@+id/textview1”

android:layout_width=“80dp”

android:layout_height=“80dp”

android:background=“#ff0202”

android:gravity=“center”

android:text=“textview1” />

<TextView

android:id=“@+id/textview2”

android:layout_width=“80dp”

android:layout_height=“80dp”

android:background=“#ffc402”

android:gravity=“center”

android:text=“textview2” />

</com.google.android.flexbox.FlexboxLayout>

3、center: 居中

这里写图片描述

<?xml version="1.0" encoding="utf-8"?>

<FrameLayout 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”>

<com.google.android.flexbox.FlexboxLayout

android:id=“@+id/flexbox_layout”

android:layout_width=“match_parent”

android:layout_height=“wrap_content”

app:justifyContent=“center”>

<TextView

android:layout_width=“80dp”

android:layout_height=“80dp”

android:gravity=“center”

android:padding=“5dp”

android:text=“center: 居中” />

<TextView

android:id=“@+id/textview1”

android:layout_width=“80dp”

android:layout_height=“80dp”

android:background=“#ff0202”

android:gravity=“center”

android:text=“textview1” />

<TextView

android:id=“@+id/textview2”

android:layout_width=“80dp”

android:layout_height=“80dp”

android:background=“#ffc402”

android:gravity=“center”

android:text=“textview2” />

</com.google.android.flexbox.FlexboxLayout>

4、space-between:两端对齐,控件之间的间隔相等

这里写图片描述

<?xml version="1.0" encoding="utf-8"?>

<FrameLayout 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”>

<com.google.android.flexbox.FlexboxLayout

android:id=“@+id/flexbox_layout”

android:layout_width=“match_parent”

android:layout_height=“wrap_content”

app:justifyContent=“space_between”>

<TextView

android:layout_width=“80dp”

android:layout_height=“wrap_content”

android:gravity=“center”

android:padding=“5dp”

android:text=“space-between:两端对齐,控件之间的间隔相等” />

<TextView

android:id=“@+id/textview1”

android:layout_width=“80dp”

android:layout_height=“80dp”

android:background=“#ff0202”

android:gravity=“center”

android:text=“textview1” />

<TextView

android:id=“@+id/textview2”

android:layout_width=“80dp”

android:layout_height=“80dp”

android:background=“#ffc402”

android:gravity=“center”

android:text=“textview2” />

</com.google.android.flexbox.FlexboxLayout>

5、space-around:每个控件距离两侧的间隔相等(项目之间的间隔比项目与边框的间隔大一倍)

这里写图片描述

<?xml version="1.0" encoding="utf-8"?>

<FrameLayout 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”>

<com.google.android.flexbox.FlexboxLayout

android:id=“@+id/flexbox_layout”

android:layout_width=“match_parent”

android:layout_height=“wrap_content”

app:justifyContent=“space_around”>

<TextView

android:layout_width=“80dp”

android:layout_height=“wrap_content”

android:gravity=“center”

android:padding=“5dp”

android:text=“space-around:每个控件距离两侧的间隔相等(项目之间的间隔比项目与边框的间隔大一倍)” />

<TextView

android:id=“@+id/textview1”

android:layout_width=“80dp”

android:layout_height=“wrap_content”

android:background=“#ff0202”

android:gravity=“center”

android:text=“textview1” />

<TextView

android:id=“@+id/textview2”

android:layout_width=“80dp”

android:layout_height=“wrap_content”

android:background=“#ffc402”

android:gravity=“center”

android:text=“textview2” />

</com.google.android.flexbox.FlexboxLayout>

  • Flexboxlayout 5大布局属性之-alignItems

这里写图片描述

1、stretch(默认值):如果项目未设置高度或设为auto,将占满整个容器的高度。

2、flex-start:左上方开始,并与左上方对齐

3、flex-end:左下方开始,并与左下方对齐

4、center:左控件的中间开始,并与中心线水平对齐

5、baseline: 控件中的文字向上对齐

详细对应的属性如下:

1、stretch(默认值):如果项目未设置高度或设为auto,将占满整个容器的高度。

这里写图片描述

<?xml version="1.0" encoding="utf-8"?>

<FrameLayout 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”>

<com.google.android.flexbox.FlexboxLayout

android:id=“@+id/flexbox_layout”

android:layout_width=“match_parent”

android:layout_height=“match_parent”

app:alignItems=“stretch”>

<TextView

android:layout_width=“80dp”

android:layout_height=“80dp”

android:gravity=“center”

android:padding=“5dp”

android:text=“stretch(默认值):如果项目未设置高度或设为auto,将占满整个容器的高度。” />

<TextView

android:id=“@+id/textview1”

android:layout_width=“80dp”

android:layout_height=“80dp”

android:background=“#ff0202”

android:gravity=“center”

android:text=“textview1” />

<TextView

android:id=“@+id/textview2”

android:layout_width=“80dp”

android:layout_height=“80dp”

android:background=“#ffc402”

android:gravity=“center”

android:text=“textview2” />

</com.google.android.flexbox.FlexboxLayout>

2、flex-start:左上方开始,并与左上方对齐

这里写图片描述

<?xml version="1.0" encoding="utf-8"?>

<FrameLayout 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”>

<com.google.android.flexbox.FlexboxLayout

android:id=“@+id/flexbox_layout”

android:layout_width=“match_parent”

android:layout_height=“match_parent”

app:alignItems=“flex_start”>

<TextView

android:layout_width=“80dp”

android:layout_height=“wrap_content”

android:gravity=“center”

android:padding=“5dp”

android:text=“flex-start:左上方开始,并与左上方对齐” />

<TextView

android:id=“@+id/textview1”

android:layout_width=“80dp”

android:layout_height=“80dp”

android:background=“#ff0202”

android:gravity=“center”

android:text=“textview1” />

<TextView

android:id=“@+id/textview2”

android:layout_width=“80dp”

android:layout_height=“80dp”

android:background=“#ffc402”

android:gravity=“center”

android:text=“textview2” />

<TextView

android:id=“@+id/textview3”

android:layout_width=“80dp”

android:layout_height=“80dp”

android:background=“#06ff02”

android:gravity=“center”

android:text=“textview3” />

<TextView

android:id=“@+id/textview4”

android:layout_width=“80dp”

android:layout_height=“80dp”

android:background=“#02c8ff”

android:gravity=“center”

android:text=“textview4” />

<TextView

android:id=“@+id/textview5”

android:layout_width=“80dp”

android:layout_height=“80dp”

android:background=“#022cff”

android:gravity=“center”

android:text=“textview5” />

</com.google.android.flexbox.FlexboxLayout>

3、flex-end:左下方开始,并与左下方对齐

这里写图片描述

效果图中:应为flex-end(在这里就不换图了,明白就好)

<?xml version="1.0" encoding="utf-8"?>

<FrameLayout 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”>

<com.google.android.flexbox.FlexboxLayout

android:id=“@+id/flexbox_layout”

android:layout_width=“match_parent”

android:layout_height=“match_parent”

app:alignItems=“flex_end”>

<TextView

android:layout_width=“80dp”

android:layout_height=“wrap_content”

android:gravity=“center”

android:padding=“5dp”

android:text=“flex-end:左下方开始,并与左下方对齐” />

<TextView

android:id=“@+id/textview1”

android:layout_width=“80dp”

android:layout_height=“80dp”

android:background=“#ff0202”

android:gravity=“center”

android:text=“textview1” />

<TextView

android:id=“@+id/textview2”

android:layout_width=“80dp”

android:layout_height=“80dp”

android:background=“#ffc402”

android:gravity=“center”

android:text=“textview2” />

<TextView

android:id=“@+id/textview3”

android:layout_width=“80dp”

android:layout_height=“80dp”

android:background=“#06ff02”

android:gravity=“center”

android:text=“textview3” />

<TextView

android:id=“@+id/textview4”

android:layout_width=“80dp”

android:layout_height=“80dp”

android:background=“#02c8ff”

android:gravity=“center”

android:text=“textview4” />

<TextView

android:id=“@+id/textview5”

android:layout_width=“80dp”

android:layout_height=“80dp”

android:background=“#022cff”

android:gravity=“center”

android:text=“textview5” />

</com.google.android.flexbox.FlexboxLayout>

4、center:左控件的中间开始,并与中心线水平对齐

这里写图片描述

<?xml version="1.0" encoding="utf-8"?>

<FrameLayout 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”>

<com.google.android.flexbox.FlexboxLayout

android:id=“@+id/flexbox_layout”

android:layout_width=“match_parent”

android:layout_height=“match_parent”

app:alignItems=“center”>

<TextView

android:layout_width=“80dp”

android:layout_height=“wrap_content”

android:gravity=“center”

android:padding=“5dp”

android:text=“center:左控件的中间开始,并与中心线水平对齐” />

<TextView

android:id=“@+id/textview1”

android:layout_width=“80dp”

android:layout_height=“80dp”

android:background=“#ff0202”

android:gravity=“center”

android:text=“textview1” />

<TextView

android:id=“@+id/textview2”

android:layout_width=“80dp”

android:layout_height=“80dp”

android:background=“#ffc402”

android:gravity=“center”

android:text=“textview2” />

<TextView

android:id=“@+id/textview3”

android:layout_width=“80dp”

android:layout_height=“80dp”

android:background=“#06ff02”

android:gravity=“center”

android:text=“textview3” />

<TextView

android:id=“@+id/textview4”

android:layout_width=“80dp”

android:layout_height=“80dp”

android:background=“#02c8ff”

android:gravity=“center”

android:text=“textview4” />

<TextView

android:id=“@+id/textview5”

android:layout_width=“80dp”

android:layout_height=“80dp”

android:background=“#022cff”

android:gravity=“center”

android:text=“textview5” />

</com.google.android.flexbox.FlexboxLayout>

5、baseline: 控件中的文字向上对齐

这里写图片描述

<?xml version="1.0" encoding="utf-8"?>

<FrameLayout 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”>

<com.google.android.flexbox.FlexboxLayout

android:id=“@+id/flexbox_layout”

android:layout_width=“match_parent”

android:layout_height=“match_parent”

app:alignItems=“baseline”>

<TextView

android:layout_width=“80dp”

android:layout_height=“wrap_content”

android:background=“@color/colorAccent”

android:gravity=“center”

android:padding=“5dp”

android:text=“baseline: 控件中的文字向上对齐” />

<TextView

android:id=“@+id/textview1”

android:layout_width=“80dp”

android:layout_height=“80dp”

android:background=“#ff0202”

android:gravity=“center”

android:padding=“5dp”

android:text=“textview1” />

<TextView

android:id=“@+id/textview2”

android:layout_width=“80dp”

android:layout_height=“80dp”

android:background=“#ffc402”

android:gravity=“center”

android:text=“textview2” />

<TextView

android:id=“@+id/textview3”

android:layout_width=“80dp”

android:layout_height=“80dp”

android:background=“#06ff02”

android:gravity=“center”

android:text=“textview3” />

<TextView

android:id=“@+id/textview4”

android:layout_width=“80dp”

android:layout_height=“80dp”

android:background=“#02c8ff”

android:gravity=“center”

android:text=“textview4” />

<TextView

android:id=“@+id/textview5”

android:layout_width=“80dp”

android:layout_height=“80dp”

android:background=“#022cff”

android:gravity=“center”

android:text=“textview5” />

</com.google.android.flexbox.FlexboxLayout>

  • Flexboxlayout 5大布局属性之-alignContent

这里写图片描述

1、stretch(默认值):占满整个父控件。

2、flex-start:与左上角对齐。

3、flex-end:与左下角对齐。

4、center:居中对齐。

5、space_between:两端对齐。

6、space_around:控件两侧的间隔都相等(所以控件到控件距离是边上的2倍)

详细对应的属性如下:

1、stretch(默认值):占满整个父控件。

这里写图片描述

<?xml version="1.0" encoding="utf-8"?>

<FrameLayout 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”>

<com.google.android.flexbox.FlexboxLayout

android:id=“@+id/flexbox_layout”

android:layout_width=“match_parent”

android:layout_height=“match_parent”

app:alignContent=“stretch”>

<TextView

android:layout_width=“80dp”

android:layout_height=“wrap_content”

android:gravity=“center”

android:padding=“5dp”

android:text=“stretch(默认值):占满整个父控件。” />

<TextView

android:id=“@+id/textview1”

android:layout_width=“80dp”

android:layout_height=“80dp”

android:background=“#ff0202”

android:gravity=“center”

android:padding=“5dp”

android:text=“textview1” />

<TextView

android:id=“@+id/textview2”

android:layout_width=“80dp”

android:layout_height=“80dp”

android:background=“#ffc402”

android:gravity=“center”

android:text=“textview2” />

<TextView

android:id=“@+id/textview3”

android:layout_width=“80dp”

android:layout_height=“80dp”

android:background=“#06ff02”

android:gravity=“center”

android:text=“textview3” />

<TextView

android:id=“@+id/textview4”

android:layout_width=“80dp”

android:layout_height=“80dp”

android:background=“#02c8ff”

android:gravity=“center”

android:text=“textview4” />

<TextView

android:id=“@+id/textview5”

android:layout_width=“80dp”

android:layout_height=“80dp”

android:background=“#022cff”

android:gravity=“center”

android:text=“textview5” />

</com.google.android.flexbox.FlexboxLayout>

2、flex-start:与左上角对齐。

这里写图片描述

<?xml version="1.0" encoding="utf-8"?>

<FrameLayout 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”>

<com.google.android.flexbox.FlexboxLayout

android:id=“@+id/flexbox_layout”

android:layout_width=“match_parent”

android:layout_height=“match_parent”

app:alignContent=“flex_start”

app:flexWrap=“wrap”>

<TextView

android:layout_width=“80dp”

android:layout_height=“wrap_content”

android:gravity=“center”

android:padding=“5dp”

android:text=“flex-start:与左上角对齐。” />

<TextView

android:id=“@+id/textview1”

android:layout_width=“100dp”

android:layout_height=“80dp”

android:background=“#ff0202”

android:gravity=“center”

android:padding=“5dp”

android:text=“textview1” />

<TextView

android:id=“@+id/textview2”

android:layout_width=“60dp”

android:layout_height=“80dp”

android:background=“#ffc402”

android:gravity=“center”

android:text=“textview2” />

<TextView

android:id=“@+id/textview3”

android:layout_width=“80dp”

android:layout_height=“80dp”

android:background=“#06ff02”

android:gravity=“center”

android:text=“textview3” />

<TextView

android:id=“@+id/textview4”

android:layout_width=“90dp”

android:layout_height=“80dp”

android:background=“#02c8ff”

android:gravity=“center”

android:text=“textview4” />

<TextView

android:id=“@+id/textview5”

android:layout_width=“100dp”

android:layout_height=“80dp”

android:background=“#022cff”

android:gravity=“center”

android:text=“textview5” />

</com.google.android.flexbox.FlexboxLayout>

3、flex-end:与左下角对齐。

这里写图片描述

<?xml version="1.0" encoding="utf-8"?>

<FrameLayout 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”>

<com.google.android.flexbox.FlexboxLayout

android:id=“@+id/flexbox_layout”

android:layout_width=“match_parent”

android:layout_height=“match_parent”

app:alignContent=“flex_end”

app:flexWrap=“wrap”>

<TextView

android:layout_width=“80dp”

android:layout_height=“wrap_content”

android:gravity=“center”

android:padding=“5dp”

android:text=“flex-end:与左下角对齐。” />

<TextView

android:id=“@+id/textview1”

android:layout_width=“100dp”

android:layout_height=“80dp”

android:background=“#ff0202”

android:gravity=“center”

android:padding=“5dp”

android:text=“textview1” />

<TextView

android:id=“@+id/textview2”

android:layout_width=“60dp”

android:layout_height=“80dp”

android:background=“#ffc402”

android:gravity=“center”

android:text=“textview2” />

<TextView

android:id=“@+id/textview3”

android:layout_width=“80dp”

android:layout_height=“80dp”

android:background=“#06ff02”

android:gravity=“center”

android:text=“textview3” />

<TextView

android:id=“@+id/textview4”

android:layout_width=“90dp”

android:layout_height=“80dp”

android:background=“#02c8ff”

android:gravity=“center”

android:text=“textview4” />

<TextView

android:id=“@+id/textview5”

android:layout_width=“100dp”

android:layout_height=“80dp”

android:background=“#022cff”

android:gravity=“center”

android:text=“textview5” />

</com.google.android.flexbox.FlexboxLayout>

4、center:居中对齐。

这里写图片描述

<?xml version="1.0" encoding="utf-8"?>

<FrameLayout 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”>

<com.google.android.flexbox.FlexboxLayout

android:id=“@+id/flexbox_layout”

android:layout_width=“match_parent”

android:layout_height=“match_parent”

app:alignContent=“center”

app:flexWrap=“wrap”>

<TextView

android:layout_width=“80dp”

android:layout_height=“wrap_content”

android:gravity=“center”

android:padding=“5dp”

android:text=“center:居中对齐。” />

<TextView

android:id=“@+id/textview1”

android:layout_width=“100dp”

android:layout_height=“80dp”

android:background=“#ff0202”

android:gravity=“center”

android:padding=“5dp”

android:text=“textview1” />

<TextView

android:id=“@+id/textview2”

android:layout_width=“60dp”

android:layout_height=“80dp”

android:background=“#ffc402”

android:gravity=“center”

android:text=“textview2” />

<TextView

android:id=“@+id/textview3”

android:layout_width=“80dp”

android:layout_height=“80dp”

android:background=“#06ff02”

android:gravity=“center”

android:text=“textview3” />

<TextView

android:id=“@+id/textview4”

android:layout_width=“90dp”

android:layout_height=“80dp”

android:background=“#02c8ff”

android:gravity=“center”

android:text=“textview4” />

<TextView

android:id=“@+id/textview5”

android:layout_width=“100dp”

android:layout_height=“80dp”

android:background=“#022cff”

android:gravity=“center”

android:text=“textview5” />

</com.google.android.flexbox.FlexboxLayout>

5、space_between:两端对齐。

这里写图片描述

<?xml version="1.0" encoding="utf-8"?>

<FrameLayout 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”>

<com.google.android.flexbox.FlexboxLayout

android:id=“@+id/flexbox_layout”

android:layout_width=“match_parent”

android:layout_height=“match_parent”

app:alignContent=“space_between”

app:flexWrap=“wrap”>

<TextView

android:layout_width=“80dp”

android:layout_height=“wrap_content”

android:gravity=“center”

android:padding=“5dp”

android:text=“space_between:两端对齐。” />

<TextView

android:id=“@+id/textview1”

android:layout_width=“100dp”

android:layout_height=“80dp”

android:background=“#ff0202”

android:gravity=“center”

android:padding=“5dp”

android:text=“textview1” />

<TextView

android:id=“@+id/textview2”

android:layout_width=“60dp”

android:layout_height=“80dp”

android:background=“#ffc402”

android:gravity=“center”

android:text=“textview2” />

<TextView

android:id=“@+id/textview3”

android:layout_width=“80dp”

android:layout_height=“80dp”

android:background=“#06ff02”

android:gravity=“center”

android:text=“textview3” />

<TextView

android:id=“@+id/textview4”

android:layout_width=“90dp”

android:layout_height=“80dp”

android:background=“#02c8ff”

android:gravity=“center”

android:text=“textview4” />

<TextView

android:id=“@+id/textview5”

android:layout_width=“100dp”

android:layout_height=“80dp”

android:background=“#022cff”

android:gravity=“center”

android:text=“textview5” />

</com.google.android.flexbox.FlexboxLayout>

6、space_around:控件两侧的间隔都相等(所以控件到控件距离是边上的2倍)

这里写图片描述

<?xml version="1.0" encoding="utf-8"?>

<FrameLayout 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”>

<com.google.android.flexbox.FlexboxLayout

android:id=“@+id/flexbox_layout”

android:layout_width=“match_parent”

android:layout_height=“match_parent”

app:alignContent=“space_around”

app:flexWrap=“wrap”>

<TextView

android:layout_width=“80dp”

android:layout_height=“wrap_content”

android:gravity=“center”

android:padding=“5dp”

android:text=“space_around:控件两侧的间隔都相等(所以控件到控件距离是边上的2倍)” />

<TextView

android:id=“@+id/textview1”

android:layout_width=“100dp”

android:layout_height=“80dp”

android:background=“#ff0202”

android:gravity=“center”

android:padding=“5dp”

android:text=“textview1” />

<TextView

android:id=“@+id/textview2”

android:layout_width=“60dp”

android:layout_height=“80dp”

android:background=“#ffc402”

android:gravity=“center”

android:text=“textview2” />

<TextView

android:id=“@+id/textview3”

android:layout_width=“80dp”

android:layout_height=“80dp”

android:background=“#06ff02”

android:gravity=“center”

android:text=“textview3” />

<TextView

android:id=“@+id/textview4”

android:layout_width=“90dp”

android:layout_height=“80dp”

android:background=“#02c8ff”

android:gravity=“center”

android:text=“textview4” />

<TextView

android:id=“@+id/textview5”

android:layout_width=“100dp”

android:layout_height=“80dp”

android:background=“#022cff”

android:gravity=“center”

android:text=“textview5” />

</com.google.android.flexbox.FlexboxLayout>

  • 元素的权重

这里写图片描述

<?xml version="1.0" encoding="utf-8"?>

<com.google.android.flexbox.FlexboxLayout xmlns:android=“http://schemas.android.com/apk/res/android”

xmlns:app=“http://schemas.android.com/apk/res-auto”

android:id=“@+id/flexbox_layout”

android:layout_width=“match_parent”

android:layout_height=“wrap_content”>

<TextView

android:layout_width=“0dp”

android:layout_height=“wrap_content”

android:gravity=“center”

android:padding=“5dp”

android:text=“layout_flexGrow(表示元素的权重属性)”

app:layout_flexGrow=“2” />

<TextView

android:id=“@+id/textview1”

android:layout_width=“0dp”

android:layout_height=“80dp”

android:background=“#ff0202”

android:gravity=“center”

android:padding=“5dp”

android:text=“textview1”

app:layout_flexGrow=“1” />

</com.google.android.flexbox.FlexboxLayout>

  • 空间不足时子控件的缩放比例

这里写图片描述

<?xml version="1.0" encoding="utf-8"?>

<com.google.android.flexbox.FlexboxLayout xmlns:android=“http://schemas.android.com/apk/res/android”

xmlns:app=“http://schemas.android.com/apk/res-auto”

android:id=“@+id/flexbox_layout”

android:layout_width=“300dp”

android:layout_height=“wrap_content”>

<TextView

android:layout_width=“300dp”

android:layout_height=“wrap_content”

android:gravity=“center”

android:padding=“5dp”

android:text=“因为宽度不足,所以text1就缩小三分之二,text2缩小三分之一。”

app:layout_flexShrink=“2” />

<TextView

android:id=“@+id/textview1”

android:layout_width=“300dp”

android:layout_height=“wrap_content”

android:background=“#ff0202”

android:gravity=“center”

android:padding=“5dp”

android:text=“textview1”

app:layout_flexShrink=“1” />

</com.google.android.flexbox.FlexboxLayout>

  • 控制排列的顺序

这里写图片描述

<?xml version="1.0" encoding="utf-8"?>

<com.google.android.flexbox.FlexboxLayout xmlns:android=“http://schemas.android.com/apk/res/android”

xmlns:app=“http://schemas.android.com/apk/res-auto”

android:id=“@+id/flexbox_layout”

android:layout_width=“match_parent”

android:layout_height=“wrap_content”

app:flexWrap=“wrap”>

<TextView

android:layout_width=“80dp”

android:layout_height=“wrap_content”

android:gravity=“center”

android:padding=“5dp”

android:text=“layout_order(控制排列的顺序,按照从小到大的顺序依次排列)”

app:layout_order=“1” />

<TextView

android:id=“@+id/textview1”

android:layout_width=“100dp”

android:layout_height=“80dp”

android:background=“#ff0202”

android:gravity=“center”

android:padding=“5dp”

android:text=“textview1”

app:layout_order=“6” />

<TextView

android:id=“@+id/textview2”

android:layout_width=“60dp”

android:layout_height=“80dp”

android:background=“#ffc402”

android:gravity=“center”

android:text=“textview2”

app:layout_order=“5” />

<TextView

android:id=“@+id/textview3”

android:layout_width=“80dp”

android:layout_height=“80dp”

android:background=“#06ff02”

android:gravity=“center”

android:text=“textview3”

app:layout_order=“4” />

<TextView

android:id=“@+id/textview4”

android:layout_width=“90dp”

android:layout_height=“80dp”

android:background=“#02c8ff”

android:gravity=“center”

android:text=“textview4”

app:layout_order=“3” />

<TextView

android:id=“@+id/textview5”

android:layout_width=“100dp”

android:layout_height=“80dp”

android:background=“#022cff”

android:gravity=“center”

android:text=“textview5”

app:layout_order=“2” />

</com.google.android.flexbox.FlexboxLayout>

  • 百分比布局

这里写图片描述

<?xml version="1.0" encoding="utf-8"?>

<com.google.android.flexbox.FlexboxLayout xmlns:android=“http://schemas.android.com/apk/res/android”

xmlns:app=“http://schemas.android.com/apk/res-auto”

android:id=“@+id/flexbox_layout”

android:layout_width=“match_parent”

android:layout_height=“match_parent”

app:flexWrap=“wrap”>

<TextView

android:layout_width=“80dp”

android:layout_height=“wrap_content”

android:gravity=“center”

android:padding=“5dp”

android:text=“layout_flexBasisPercent(按照横轴的百分比进行布局)”

app:layout_flexBasisPercent=“30%” />

<TextView

android:id=“@+id/textview1”

android:layout_width=“100dp”

android:layout_height=“80dp”

android:background=“#ff0202”

android:gravity=“center”

android:padding=“5dp”

android:text=“textview1”

app:layout_flexBasisPercent=“50%” />

<TextView

android:id=“@+id/textview2”

android:layout_width=“60dp”

android:layout_height=“80dp”

android:background=“#ffc402”

android:gravity=“center”

android:text=“textview2”

app:layout_flexBasisPercent=“50%” />

<TextView

android:id=“@+id/textview3”

android:layout_width=“80dp”

android:layout_height=“80dp”

android:background=“#06ff02”

android:gravity=“center”

android:text=“textview3”

app:layout_flexBasisPercent=“50%” />

<TextView

android:id=“@+id/textview4”

【附】相关架构及资料

往期Android高级架构资料、源码、笔记、视频。高级UI、性能优化、架构师课程、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter全方面的Android进阶实践技术,群内还有技术大牛一起讨论交流解决问题。

id:background=“#06ff02”

android:gravity=“center”

android:text=“textview3”

app:layout_order=“4” />

<TextView

android:id=“@+id/textview4”

android:layout_width=“90dp”

android:layout_height=“80dp”

android:background=“#02c8ff”

android:gravity=“center”

android:text=“textview4”

app:layout_order=“3” />

<TextView

android:id=“@+id/textview5”

android:layout_width=“100dp”

android:layout_height=“80dp”

android:background=“#022cff”

android:gravity=“center”

android:text=“textview5”

app:layout_order=“2” />

</com.google.android.flexbox.FlexboxLayout>

  • 百分比布局

这里写图片描述

<?xml version="1.0" encoding="utf-8"?>

<com.google.android.flexbox.FlexboxLayout xmlns:android=“http://schemas.android.com/apk/res/android”

xmlns:app=“http://schemas.android.com/apk/res-auto”

android:id=“@+id/flexbox_layout”

android:layout_width=“match_parent”

android:layout_height=“match_parent”

app:flexWrap=“wrap”>

<TextView

android:layout_width=“80dp”

android:layout_height=“wrap_content”

android:gravity=“center”

android:padding=“5dp”

android:text=“layout_flexBasisPercent(按照横轴的百分比进行布局)”

app:layout_flexBasisPercent=“30%” />

<TextView

android:id=“@+id/textview1”

android:layout_width=“100dp”

android:layout_height=“80dp”

android:background=“#ff0202”

android:gravity=“center”

android:padding=“5dp”

android:text=“textview1”

app:layout_flexBasisPercent=“50%” />

<TextView

android:id=“@+id/textview2”

android:layout_width=“60dp”

android:layout_height=“80dp”

android:background=“#ffc402”

android:gravity=“center”

android:text=“textview2”

app:layout_flexBasisPercent=“50%” />

<TextView

android:id=“@+id/textview3”

android:layout_width=“80dp”

android:layout_height=“80dp”

android:background=“#06ff02”

android:gravity=“center”

android:text=“textview3”

app:layout_flexBasisPercent=“50%” />

<TextView

android:id=“@+id/textview4”

【附】相关架构及资料

[外链图片转存中…(img-DJ4zk6Z3-1726023835131)]

[外链图片转存中…(img-tc20tbSU-1726023835132)]

往期Android高级架构资料、源码、笔记、视频。高级UI、性能优化、架构师课程、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter全方面的Android进阶实践技术,群内还有技术大牛一起讨论交流解决问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值