使LinearLayout中的控件不填充所有空间

时间:2015-10-26 10:57:48

标签: android

我有这样的布局:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:layout_weight="1" >
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="fsfsdfds"
        android:layout_gravity="center_vertical" />
    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical" />
</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:layout_weight="1" >
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="fdsfdsfds"
        android:layout_gravity="center_vertical" />
    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical" />

</LinearLayout>
<Button
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

它填补了活动的整个空间。

如何让这两个TextViewsEditTexts只占用足够的空间来展示自己(不填充所有空格)并将按钮对齐到底部?

4 个答案:

答案 0 :(得分:3)

我认为这就是你要找的东西:

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

    <LinearLayout
        android:id="@+id/LinearLayout1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:text="TextView1" />

        <EditText
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_weight="1"
            android:inputType="text" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/LinearLayout1"
        android:orientation="horizontal">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:text="TextView2" />

        <EditText
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_weight="1"
            android:inputType="text" />
    </LinearLayout>

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:text="Button" />
</RelativeLayout>

编辑:

如果您不想使用两个LinerLayouts(因此获得更高的性能),您可以执行以下操作:

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

    <TextView
        android:id="@+id/TextView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@id/EditText1"
        android:layout_gravity="center_vertical"
        android:text="TextView1" />

    <EditText
        android:id="@+id/EditText1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_gravity="center_vertical"
        android:layout_toEndOf="@id/TextView1"
        android:layout_toRightOf="@id/TextView1"
        android:inputType="text" />

    <TextView
        android:id="@+id/TextView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@id/EditText2"
        android:layout_below="@id/TextView1"
        android:layout_gravity="center_vertical"
        android:text="TextView2" />

    <EditText
        android:id="@+id/EditText2"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_below="@id/EditText1"
        android:layout_gravity="center_vertical"
        android:layout_toEndOf="@id/TextView2"
        android:layout_toRightOf="@id/TextView2"
        android:inputType="text" />

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:text="Button" />
</RelativeLayout>

答案 1 :(得分:2)

检查这个。

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

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_weight="0.5"
        android:text="fsfsdfds" />

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_weight="0.5" />
</LinearLayout>

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

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_weight="0.5"
        android:text="fdsfdsfds" />

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_weight="0.5" />

</LinearLayout>

<Button
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

答案 2 :(得分:1)

  • 您尝试使用RelativeLayout,否则如果想要使用LinearLayout,您需要考虑权重,如果宽度不是fillparent。
  • 检查下面的示例以...开头。

    {
                    title: 'Details',
                    iconCls: 'info',
                    **xtype: 'calendar',**
                    //style: 'margin-left:25%;',
                    cls: 'card dark'
                    },
    

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_weight="0.2"
        android:text="fsfsdfds" />
    
    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_weight="0.8" />
    

答案 3 :(得分:1)

转换为相对布局并使用alignparentbottom作为按钮 - 或使用布局权重进行线性布局