Android linearLayout有3个孩子。其中2个宽度相等

时间:2017-03-28 17:44:09

标签: android android-layout

我有3个孩子的线性布局。

其中两个应该具有相同的宽度。中间的一个孩子应该随心所欲地成长。两个宽度相等的孩子应该分开剩下的空间。

|<-- equal width --> <-- a gorwing child --> <-- euqal width -->|

如何使用linearlayout进行此类安排?

由于

4 个答案:

答案 0 :(得分:3)

试试这个:

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

    <Button
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="Left" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="Middle Button Long Text " />

    <Button
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="Right" />
</LinearLayout>

设置中间按钮的宽度android:layout_width="wrap_content"

选项2

我建议使用它...使用相对布局代替。在android:layout_alignParentLeft="true"android:layout_alignParentRight="true"的帮助下,您可以实现布局

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

    <Button
        android:id="@+id/bt_left"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:minWidth="0dp"
        android:text="Left" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toLeftOf="@+id/bt_right"
        android:layout_toRightOf="@+id/bt_left"
        android:text="Middle Button Long Text Middle Button Long Text Middle Button Long Text Middle Button Long Text" />

    <Button
        android:id="@+id/bt_right"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:minWidth="0dp"
        android:text="Right" />
</RelativeLayout>

输出:

enter image description here

答案 1 :(得分:0)

试试这个

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

<Button
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight=".5"
    android:text="Button 1" />

<Button
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:text="Button 2" />

<Button
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight=".5"
    android:text="Button 3" />

</LinearLayout>

答案 2 :(得分:0)

使用LinearLayout,您无法像往常一样获得预期的结果。而不是LinearLayout使用RelativeLayout

这是完全正常工作的代码。试试这个:

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

    <Button
        android:id="@+id/button_middle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:maxLines="1"
        android:text="MIDDLE GROWING" />

    <Button
        android:id="@+id/button_left"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_toLeftOf="@id/button_middle"
        android:maxLines="1"
        android:text="EQUAL" />

    <Button
        android:id="@+id/button_right"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@id/button_middle"
        android:maxLines="1"
        android:text="EQUAL WIDTH" />
</RelativeLayout>

预期输出:

enter image description here

  

仅供参考,我使用了3种布局来理解它的完美运作。

答案 3 :(得分:-1)

将这些放在您想要的任何地方,但将宽度和高度更改为您喜欢的

<Button
    android:id="@+id/xxx"
    android:layout_width="120dp"
    android:layout_height="35dp"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:background="@drawable/draw"/>
<Button
    android:id="@+id/yyy"
    android:layout_width="120dp"
    android:layout_height="35dp"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
    android:background="@drawable/draw"/>
<Button
    android:id="@+id/zzz"
    android:layout_width="match_parent"
    android:layout_height="35dp"
    android:layout_alignParentBottom="true"
    android:layout_toRightOf="@id/xxx"
    android:layout_toLeftOf="@id/yyy"
    android:background="@drawable/draw_draw"/>

实际上它不需要LinearLayout或RelativeLayout但你可以将它们设置为任何组视图的子视图,但我建议不要这样做,因为我的建议对内存使用更有效。