首页 > 解决方案 > 使用 FlexboxLayout 的浮动窗口的最大宽度大小是有限的

问题描述

使用 FlexboxLayout 的浮动窗口的最大宽度大小是有限的,但手机屏幕左右仍然有可用空间。

FlexboxLayout 没有将大部分元素放在第一行,而是创建了具有几乎相同大小的元素的第二行。

不管是纵向还是横向:

在此处输入图像描述

在此处输入图像描述

布局:

<com.google.android.flexbox.FlexboxLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/widget_background"
    app:flexDirection="row"
    app:flexWrap="wrap"
    android:paddingHorizontal="12dp"
    android:paddingVertical="6dp">

    <ImageView
        android:layout_width="@dimen/overlay_btn_size"
        android:layout_height="@dimen/overlay_btn_size"
        android:layout_marginHorizontal="12dp"
        android:layout_marginVertical="12dp"
        android:scaleType="fitCenter"
        android:src="@drawable/ic_baseline_delete_24" />

    <ImageView
        android:layout_width="@dimen/overlay_btn_size"
        android:layout_height="@dimen/overlay_btn_size"
        android:layout_marginHorizontal="12dp"
        android:layout_marginVertical="12dp"
        android:scaleType="fitCenter"
        android:src="@drawable/ic_baseline_delete_24" />

    <ImageView
        android:layout_width="@dimen/overlay_btn_size"
        android:layout_height="@dimen/overlay_btn_size"
        android:layout_marginHorizontal="12dp"
        android:layout_marginVertical="12dp"
        android:scaleType="fitCenter"
        android:src="@drawable/ic_baseline_delete_24" />

    <ImageView
        android:layout_width="@dimen/overlay_btn_size"
        android:layout_height="@dimen/overlay_btn_size"
        android:layout_marginHorizontal="12dp"
        android:layout_marginVertical="12dp"
        android:scaleType="fitCenter"
        android:src="@drawable/ic_baseline_delete_24" />

    <ImageView
        android:layout_width="@dimen/overlay_btn_size"
        android:layout_height="@dimen/overlay_btn_size"
        android:layout_marginHorizontal="12dp"
        android:layout_marginVertical="12dp"
        android:scaleType="fitCenter"
        android:src="@drawable/ic_baseline_delete_24" />

    <ImageView
        android:layout_width="@dimen/overlay_btn_size"
        android:layout_height="@dimen/overlay_btn_size"
        android:layout_marginHorizontal="12dp"
        android:layout_marginVertical="12dp"
        android:scaleType="fitCenter"
        android:src="@drawable/ic_baseline_delete_24" />

    <ImageView
        android:layout_width="@dimen/overlay_btn_size"
        android:layout_height="@dimen/overlay_btn_size"
        android:layout_marginHorizontal="12dp"
        android:layout_marginVertical="12dp"
        android:scaleType="fitCenter"
        android:src="@drawable/ic_baseline_delete_24" />

    <ImageView
        android:layout_width="@dimen/overlay_btn_size"
        android:layout_height="@dimen/overlay_btn_size"
        android:layout_marginHorizontal="12dp"
        android:layout_marginVertical="12dp"
        android:scaleType="fitCenter"
        android:src="@drawable/ic_baseline_delete_24" />

    <ImageView
        android:layout_width="@dimen/overlay_btn_size"
        android:layout_height="@dimen/overlay_btn_size"
        android:layout_marginHorizontal="12dp"
        android:layout_marginVertical="12dp"
        android:scaleType="fitCenter"
        android:src="@drawable/ic_baseline_delete_24" />

    <ImageView
        android:layout_width="@dimen/overlay_btn_size"
        android:layout_height="@dimen/overlay_btn_size"
        android:layout_marginHorizontal="12dp"
        android:layout_marginVertical="12dp"
        android:scaleType="fitCenter"
        android:src="@drawable/ic_baseline_delete_24" />

    <ImageView
        android:layout_width="@dimen/overlay_btn_size"
        android:layout_height="@dimen/overlay_btn_size"
        android:layout_marginHorizontal="12dp"
        android:layout_marginVertical="12dp"
        android:scaleType="fitCenter"
        android:src="@drawable/ic_baseline_delete_24" />

    <ImageView
        android:layout_width="@dimen/overlay_btn_size"
        android:layout_height="@dimen/overlay_btn_size"
        android:layout_marginHorizontal="12dp"
        android:layout_marginVertical="12dp"
        android:scaleType="fitCenter"
        android:src="@drawable/ic_baseline_delete_24" />
</com.google.android.flexbox.FlexboxLayout>

我也试过了ConstraintLayoutFlow但结果还是一样...

如果我使用LinearLayout水平方向,那么它可以填充手机屏幕的所有宽度,但如果我有很多元素并且它们不可见,它也可以比屏幕宽度更大:

在此处输入图像描述

它只有 9 个元素,但应该有 12 个,所以这就是我尝试使用的原因FlexboxLayout

如何制作FlexboxLayout或占用手机屏幕的所有宽度ConstraintLayoutFlow

标签: androidandroid-flexboxlayoutandroid-windowconstraintlayout-flow

解决方案


推荐阅读