为什么右边的按钮不能像父母左边的左边按钮一样

lig*_*988 2 android layout-gravity

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

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="left"
            android:text="left" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="center" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="end"
            android:text="right" />
    </LinearLayout>
Run Code Online (Sandbox Code Playgroud)

我知道我也可以使用Relativelayout并设置alignparentRight = true,让右边的按钮位于这个父节点的右侧,但我只是想知道,如果我使用的是LinearLayout,我怎样才能在它的右边做右边的按钮家长吗?任何帮助谢谢

Kau*_*hik 7

如果你只有三个或两个孩子,你可以用FrameLayout而不是LinearLayout.但如果你想使用LinearLayout这样做

<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="1"
        android:text="left" />

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

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

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

使用FrameLayout父母作为父母

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

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="left|center_vertical"
        android:text="left" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="center" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right|center_vertical"
        android:text="right" />

</FrameLayout>
Run Code Online (Sandbox Code Playgroud)

为什么layout_gravity="right"不在这里解释Horizo​​ntal LinearLayout

对于水平线性布局,以下值是有意义的:

  • 最佳
  • 中央
  • 底部

这是因为水平线性布局的子项一个接一个地水平布局.只有使用android才能控制:layout_gravity是子视图垂直放置的方式.

对于垂直线性布局,以下值是有意义的:

  • 剩下
  • 中央

这是因为垂直线性布局的子项垂直排列在另一个之下.只有使用android才能控制:layout_gravity是子视图水平放置的方式.