Android xml中RelativeLayout中两个按钮之间的间距

时间:2015-05-07 07:05:47

标签: android android-layout relativelayout

我有一个有两个按钮的相对布局。我正在尝试动态设置这两个的相对位置,以便在不同的屏幕尺寸上,它看起来相同。布局的位置根据屏幕尺寸正确设置,但按钮之间的间距没有得到。

<RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/buttonLine"
        android:layout_above="@+id/separator">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button"
        android:background="@drawable/skip"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_marginLeft="60dp"/>



    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/buttonClr"
        android:background="@drawable/clear"
        android:layout_alignParentTop="true"
        android:layout_alignParentRight="true"
        android:layout_marginRight="60dp"/>

    </RelativeLayout>

在我的java类中,我有一个动态部分的方法。我在那里使用这段代码进行按钮相对布局。

button_line.getLayoutParams().height = getHorizontalRatio(40); //button_line is RelativeLayout
 skip.setPadding(getHorizontalRatio(40), 0, 0, 0); //skip and clear are the buttons
 clear.setPadding(getHorizontalRatio(400), 0, 0, 0);
skip.getLayoutParams().width = getHorizontalRatio(75);
            skip.getLayoutParams().height = getHorizontalRatio(25);
            clear.getLayoutParams().width = getHorizontalRatio(75);
            clear.getLayoutParams().height = getHorizontalRatio(25);

PS:我尝试更改比率并将布局更改为LinearLayout(我完全不理解)。请提出建议。

6 个答案:

答案 0 :(得分:0)

Android自动负责根据屏幕尺寸定位元素。 我们使用dp(密度像素)作为单位来给出边距或填充,这反过来会将元素放置在设备的屏幕尺寸上。

点击此链接了解更多详情: http://developer.android.com/guide/practices/screens_support.html

因此,作为结论,您不必在运行时设置填充,您可以在布局xml中进行更改。

编辑尝试使用我的一个工作项目的片段!! ..

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:paddingTop="15dp"
    android:orientation="horizontal">
 <Button
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_marginLeft="120dp"
     android:text="CLEAR"
     android:id="@+id/clearBtn"/>
 <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:text="SEARCH"
        android:id="@+id/searchBtn"/>
</LinearLayout>

希望这有效..

答案 1 :(得分:0)

性能不是很好,但工作正常:)

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

    <LinearLayout
        android:layout_width="0dip"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_weight="1"
        android:gravity="center" >

        <Button
            android:id="@+id/button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/skip" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="0dip"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_weight="1"
        android:gravity="center" >

        <Button
            android:id="@+id/buttonClr"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/clear" />
    </LinearLayout>

</LinearLayout>

答案 2 :(得分:0)

试试这个......

有关详情:Layout Weight

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

    <Button
        android:id="@+id/clear_btn"
        style="?android:attr/buttonBarButtonStyle"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:background="@drawable/ic_action_clear"
        android:padding="8dp" />

    <Button
        android:id="@+id/skip_btn"
        style="?android:attr/buttonBarButtonStyle"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:background="@drawable/ic_action_skip"
        android:padding="8dp" />
</LinearLayout>

答案 3 :(得分:0)

也许是这样的

<LinearLayout 
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:layout_marginLeft="60dp"
android:layout_marginRight="60dp">

   <Button
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:id="@+id/button"
       android:background="@drawable/skip" />

   <View
       android:layout_width="0dp"
       android:layout_height="wrap_content"
       android:layout_weight="1"/>

   <Button
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:id="@+id/buttonClr"
       android:background="@drawable/clear />
</LinearLayout>

答案 4 :(得分:0)

这是你想要的吗?

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:orientation="horizontal"
              android:padding="20dp"
              android:weightSum="2">

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

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

</LinearLayout>

enter image description here

答案 5 :(得分:0)

尝试使用TableLayout并使用weight属性调整所需的间距。按钮之间的TextView将用作间隔符。

<TableLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <TableRow
              android:id="@+id/tableRow1"
              android:layout_height="wrap_content"
              android:layout_width="match_parent"
              android:weightSum = 11>

              <Button
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:id="@+id/button"
                  android:layout_weight="5"
                  android:background="@drawable/skip"/>

              <TextView
                  android:id="@+id/TextView04" 
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:layout_weight="1"/>

              <Button
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:id="@+id/buttonClr"
                  android:layout_weight="5"
                  android:background="@drawable/clear"/>

        </TableRow>

</TableLayout>

RelativeLayout

中添加此表格布局

希望它有所帮助。