空白视图的默认高度是多少?

时间:2018-11-24 18:09:26

标签: java android

我想用相等的空格分隔4个图标,例如pic1

pic1

pic1的XML代码是:

code1

但是,我第一次将“空白视图”高度设置为wrap_content,然后结果显示如下:

pic2

pic2的代码是:

code2

唯一的区别是用红色矩形突出显示。

2 个答案:

答案 0 :(得分:0)

使用此代码代替包含所有图标的线性布局

<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">

<LinearLayout
    android:layout_weight="1"
    android:layout_width="0dp"
    android:layout_height="wrap_content">

    <!--keep your first icon code here-->

</LinearLayout>

<LinearLayout
    android:layout_weight="1"
    android:layout_width="0dp"
    android:layout_height="wrap_content">

    <!--keep your second icon code here-->

</LinearLayout>

<LinearLayout
    android:layout_weight="1"
    android:layout_width="0dp"
    android:layout_height="wrap_content">

    <!--keep your third icon code here-->

</LinearLayout>

<LinearLayout
    android:layout_weight="1"
    android:layout_width="0dp"
    android:layout_height="wrap_content">

    <!--keep your fourth icon code here-->

</LinearLayout>

希望有帮助

如果我知道一些问题

快乐的编码:)

答案 1 :(得分:0)

在这种布局的情况下,您将从ConstraintLayout中获得更多收益。

具体来说,在ConstraintLayout中设置图标看起来像这样,以获得想要的平衡外观:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <ImageView
        android:id="@+id/image_1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/check"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toStartOf="@id/image_2"
        app:layout_constraintHorizontal_chainStyle="spread_inside"/>

    <ImageView
        android:id="@+id/image_2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/check"
        app:layout_constraintStart_toEndOf="@id/image_1"
        app:layout_constraintEnd_toStartOf="@id/image_3"
        app:layout_constraintHorizontal_chainStyle="spread_inside" />

    <ImageView
        android:id="@+id/image_3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/check"
        app:layout_constraintStart_toEndOf="@id/image_2"
        app:layout_constraintEnd_toStartOf="@id/image_4"
        app:layout_constraintHorizontal_chainStyle="spread_inside" />

    <ImageView
        android:id="@+id/image_4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/check"
        app:layout_constraintStart_toEndOf="@id/image_3"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_chainStyle="spread_inside"/>
</androidx.constraintlayout.widget.ConstraintLayout>

此代码段吸引您的地方是:

  • horizontal ConstraintLayout的方向
  • 每个ImageView的约束条件,将它们附加到之前和之后的约束
  • 第一个视图是parent的约束,特别是最后一个视图是
  • app:layout_constraintHorizontal_chainStyle="spread_inside",表示将它们均匀分布在可用空间内。

如果您不希望它们碰到侧面,请在父ConstraintLayout的左侧/右侧添加填充。