Android放置按钮“水平居中+ marginLeft”

时间:2013-05-20 11:30:10

标签: android android-layout

我只需要在屏幕上平行放置两个按钮(每个宽度为50dp)。 第一个应该留有10dp的边距并且放置就好了。

但第二个按钮应该放在屏幕上,从中间(水平方向)保留30dp马林。 我需要做的是它应该从我用箭头指示的地方开始。

enter image description here

我的设计xml如下。使用LinearLayout或RelativeLayout无关紧要。

<RelativeLayout
    android:id="@+id/relativeLayout1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#634785" >        

    <Button
        android:id="@+id/button1"
        android:layout_width="50dp"
        android:layout_height="wrap_content"
        android:text="B1"
        android:layout_marginLeft="10dp" />

    <Button
        android:id="@+id/button2"
        android:layout_width="50dp"
        android:layout_height="wrap_content"
        android:text="B2"           
        android:layout_centerHorizontal="true"
        android:layout_marginLeft="30dp />
</RelativeLayout>

3 个答案:

答案 0 :(得分:7)

在容器的中央放置一个不可见的视图(0dp宽和高),并根据需要将第二个按钮对齐:

<RelativeLayout
    android:id="@+id/relativeLayout1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#634785" >        

    <Button
        android:id="@+id/button1"
        android:layout_width="50dp"
        android:layout_height="wrap_content"
        android:text="B1"
        android:layout_marginLeft="10dp" 
        />

    <Button
        android:id="@+id/container_center"
        android:layout_centerInParent="true"
        android:layout_width="0dp"
        android:layout_height="0dp"
        />

    <Button
        android:id="@+id/button2"
        android:layout_width="50dp"
        android:layout_height="wrap_content"
        android:text="B2"           
        android:layout_toRightOf="@+id/container_center" 
        android:layout_marginLeft="30dp"
        />

</RelativeLayout>

答案 1 :(得分:1)

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/relativeLayout1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#634785" >

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >

        <Button
            android:id="@+id/button1"
            android:layout_width="50dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:text="B1" />

        <RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true" >

            <Button
                android:id="@+id/button2"
                android:layout_width="50dp"
                android:layout_height="wrap_content"
                android:layout_marginLeft="30dp"
                android:text="B2" />
        </RelativeLayout>
    </RelativeLayout>

</RelativeLayout>

答案 2 :(得分:0)

我尝试了上面的答案,但上面的任何一个都不适用于我的情况,我想将button2放在另一个button1上,所以为了确保button2应该放置一些来自中心的填充,以使其响应所有设备。但是由于某种原因,button2仍然在左侧。这是我为实现这个目的而写的XML代码,请纠正我

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#ffffff">
    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="40dp">
        <Button
            android:id="@+id/EnglishButton"
            android:layout_width="fill_parent"
            android:layout_height="35dp"
            android:text="   English"
            android:textColor="#000000"
            android:gravity="left|center_vertical"
            android:background="@drawable/Color_Button_Language"
            android:layout_marginLeft="20dp" />
        <Button
            android:id="@+id/fakeview"
            android:layout_centerInParent="true"
            android:layout_width="0dp"
            android:layout_height="0dp" />
        <Button
            android:id="@+id/TickButton1"
            android:layout_toRightOf="@+id/fakeview"
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:background="@drawable/WhiteTick" />
    </RelativeLayout>
    <View
        android:layout_width="fill_parent"
        android:layout_height="1dp"
        android:background="#6D7077"
        android:layout_marginLeft="20dp" />
</LinearLayout>

以上是上面XML的结果,但我想在屏幕中心填充后在右侧打勾 enter image description here