如何在布局中对齐高度的正中和中间

时间:2016-07-13 08:33:04

标签: android android-layout android-studio textview android-switch

我有一个Switch,女巫在布局的左边对齐, 我想将TextView对齐到它的右边和它的高度的中间。 我已经做了两个示例图片来更清楚地解释它。

这就是我所拥有的(其中A是Switch,b是TextView):

enter image description here

这就是我想要实现的目标:

enter image description here

我的交换机布局代码是:

func validatePosition(position:SCNVector3, forNode node:SCNNode) -> SCNVector3 {
    var newPosition = position
    var maxVector = SCNVector3Zero
    var minVector = SCNVector3Zero

    let success = self.actionDelegate?.getBoundingBox(&minVector, max: &maxVector)
    guard success == true else {
        return newPosition
    }

    if newPosition.x < minVector.x && newPosition.x < 0 {
        newPosition.x = minVector.x
    }

    if newPosition.y < minVector.y && newPosition.y < 0 {
        newPosition.y = minVector.y
    }

    if newPosition.z < minVector.z && newPosition.z < 0 {
        newPosition.z = minVector.z
    }

    if newPosition.x > maxVector.x && newPosition.x > 0 {
        newPosition.x = maxVector.x
    }

    if newPosition.y > maxVector.y && newPosition.y > 0 {
        newPosition.y = maxVector.y
    }

    if newPosition.z > maxVector.z && newPosition.z > 0 {
        newPosition.z = maxVector.z
    }

    return newPosition
}

我的TextView布局代码是:

<Switch
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="CIR"
        android:layout_marginLeft="8dp"
        android:layout_marginRight="8dp"
        android:checked="true"
        android:gravity="center"
        android:id="@+id/newProject_switch"
        android:layout_below="@+id/newProject_networkId"
        android:layout_marginTop="10dp"
        android:layout_alignParentLeft="true"
        />

3 个答案:

答案 0 :(得分:2)

使用这种方式。

删除您在Margin中设置的额外Switch并使用android:gravity="center_vertical。并将TextView设置为android:gravity="center_vertical|right",使其位于右侧并垂直居中。

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

        <Switch
            android:id="@+id/newProject_switch"
            android:layout_width="wrap_content"
            android:layout_height="50dp"
            android:layout_alignParentLeft="true"
            android:layout_marginLeft="8dp"
            android:layout_marginRight="8dp"
            android:checked="true"
            android:gravity="center_vertical"
            android:text="CIR" />

        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="50dp"
            android:layout_alignBottom="@+id/newProject_switch"
            android:layout_toRightOf="@+id/newProject_switch"
            android:gravity="center_vertical|right"
            android:text="Best Effort"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:textSize="15dp" />
    </LinearLayout>

enter image description here

答案 1 :(得分:1)

将此行添加到您的textview

android:layout_centerVertical="true"

答案 2 :(得分:0)

我已移除MainWindow::shootScreen并将android:layout_marginTop="10dp"添加到您的android:layout_gravity="center_vertical" 并在Switch

中将android:gravity="right|center_vertical"更改为android:layout_gravity="right|center_vertical"
TextView

enter image description here