如何:使用对齐间距布局固定大小的组件

时间:2010-12-09 17:02:56

标签: android

当我有1,2或3个组件时,我知道如何正确地将它们放到空间。但是现在我有一个视图,其中包含4个,5个......组件。而不是增加组件的大小(通过重量),我需要它们保持固定的大小。那么......有没有办法用合理的间距(在视图内均匀间隔)来铺设这些间隔?

谢谢,

Ĵ

2 个答案:

答案 0 :(得分:2)

我已经想到的类似工作是添加间隔视图组件。同样,这并不理想,但它确实有效。如果有什么更好的,请告诉我。

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    >
    <biz.mycompany.mycomponent
        android:layout_width="@dimen/screen_view_w"
        android:layout_height="@dimen/screen_view_h"
        />
    <View
        android:layout_width="0px"
        android:layout_height="@dimen/main_screen_button_h"
        android:layout_weight="1"
        />
    <biz.mycompany.mycomponent2
        android:layout_width="@dimen/screen_view_w"
        android:layout_height="@dimen/screen_view_h"
        />
    <View
        android:layout_width="0px"
        android:layout_height="@dimen/screen_view_h"
        android:layout_weight="1"
        />
    <biz.mycompany.mycomponent3
        android:layout_width="@dimen/screen_view_w"
        android:layout_height="@dimen/screen_view_h"
        />
</LinearLayout>

答案 1 :(得分:1)

以下内容可行,但不一定是最有效的方法。您想要插入什么类型的组件?基本上,我创建了一个水平LinearLayout,其子LinearLayouts具有均匀权重。我将这些内部LinearLayouts的重力设置为将其子项置于中心位置,这样您的固定宽度视图就会以适当的大小进入,并均匀地居中。

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    >
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="center"
        >
        <View 
             android:id="@+id/fixed_view_1"
             android:layout_width="30dp"
             android:layout_height="50dp"
             />
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="center"
        >
        <View 
             android:id="@+id/fixed_view_2"
             android:layout_width="30dp"
             android:layout_height="50dp"
             />
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="center"
        >
        <View 
             android:id="@+id/fixed_view_3"
             android:layout_width="30dp"
             android:layout_height="50dp"
             />
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="center"
        >
        <View 
             android:id="@+id/fixed_view_4"
             android:layout_width="30dp"
             android:layout_height="50dp"
             />
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="center"
        >
        <View 
             android:id="@+id/fixed_view_5"
             android:layout_width="30dp"
             android:layout_height="50dp"
             />
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="center"
        >
        <View 
             android:id="@+id/fixed_view_6"
             android:layout_width="30dp"
             android:layout_height="50dp"
             />
</LinearLayout>