在布局中排列等间距的元素

时间:2017-06-29 21:25:53

标签: android android-layout

我目前使用LinearLayoutlayout_weight获得以下结果。

┌─────────────────────────────────────────────────────────────────────────────┐ 
│        ┌───┐              ┌───┐              ┌───┐             ┌───┐        │ 
│        │   │              │   │              │   │             │   │        │ 
│        └───┘              └───┘              └───┘             └───┘        │ 
└─────────────────────────────────────────────────────────────────────────────┘ 
                                                                  LinearLayout  

使用这个我获得在父布局中间隔相等的元素。我想要的结果是第一个和最后一个元素应该在布局的每一边的末尾并且与内部元素等距离。为实现这一目标应该做些什么?代表如下。

┌─────────────────────────────────────────────────────────────────────────────┐ 
├───┐                    ┌───┐                   ┌───┐                    ┌───┤ 
│   │                    │   │                   │   │                    │   │ 
├───┘                    └───┘                   └───┘                    └───┤ 
└─────────────────────────────────────────────────────────────────────────────┘ 
                                                                     Layout 

1 个答案:

答案 0 :(得分:3)

您可以使用与layout_weight结合的Space视图,以便在元素之间创建相等的间距。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="match_parent"
android:layout_height="match_parent">

<View
    android:background="@color/black"
    android:layout_weight="1"
    android:layout_width="45dp"
    android:layout_height="wrap_content"/>

<Space
    android:layout_weight="1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

<View
    android:background="@color/black"
    android:layout_weight="1"
    android:layout_width="45dp"
    android:layout_height="wrap_content"/>

<Space
    android:layout_weight="1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

<View
    android:background="@color/black"
    android:layout_weight="1"
    android:layout_width="45dp"
    android:layout_height="wrap_content"/>
</LinearLayout>