android如何对齐按钮?

时间:2013-08-14 02:42:55

标签: android android-layout android-ui

我有三个按钮,所以有一些尺寸,现在我需要将第4个按钮放在第2个按钮下方,并将第4个按钮的中心与第2个按钮的中心对齐。

我这样做有点麻烦,有什么想法吗?

 

!---!---!---!
!   !   !   !
!---!---!---!
  !-------!
  !       !
  !-------!

我一直在玩重力并调整中心和东西,但仍然找不到我需要的东西。 这件事不是让我发布没有更多的行。我想知道添加这条线是否有所作为?

5 个答案:

答案 0 :(得分:1)

这是代码

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

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

        <Button
            android:id="@+id/button_1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="First" />

        <Button
            android:id="@+id/button_2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Second" />

        <Button
            android:id="@+id/button_3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Third" />
    </LinearLayout>

    <Button
        android:id="@+id/button_4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/top_buttons"
        android:layout_centerHorizontal="true"
        android:text="Forth" />
</RelativeLayout>

答案 1 :(得分:0)

你可以尝试这样的事吗

<LinearLayout
 android:weightSum="3">
 <Button
  android:layout_weight="1"/>
 <Button
  android:layout_weight="1"/>
 <Button
  android:layout_weight="1"/>
</LinearLayout>
<LinearLayout
 android:weightSum="3">
 <Button
  android:layout_gravity="center_horizontal"
  android:layout_weight="2"/>
</LinearLayout>

显然填写必要的标签要求

答案 2 :(得分:0)

也许你可以试试这个:

创建两个宽度相同的LinearLayouts。将前三个按钮放在第一个LinearLayout中,将第四个按钮放在第二个按钮中。将android:gravity="center"添加到第二个LinearLayout。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <LinearLayout
        android:layout_width="150dp"
        android:layout_height="wrap_content"
        android:id="@+id/layout1">

        <Button
            android:id="@+id/button1"
            android:layout_width="50dp"
            android:layout_height="wrap_content"
            android:text="B1" />
        <Button
            android:id="@+id/button2"
            android:layout_width="50dp"
            android:layout_height="wrap_content"
            android:text="B2" />
        <Button
            android:id="@+id/button3"
            android:layout_width="50dp"
            android:layout_height="wrap_content"
            android:text="B3" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="150dp"
        android:layout_height="wrap_content" 
        android:layout_below="@id/layout1"
        android:gravity="center"
        >

        <Button
            android:id="@+id/button2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Button2" 
            android:layout_gravity="center"
            />

    </LinearLayout>

</RelativeLayout>

答案 3 :(得分:0)

请尝试此代码,这将解决您的问题。很乐意提供帮助

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

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

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />

    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />
</LinearLayout>

<LinearLayout
    android:layout_width="200dp"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:orientation="horizontal" >

    <Button
        android:id="@+id/button4"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="Button" />
</LinearLayout>

</LinearLayout>

答案 4 :(得分:0)

发布的大多数其他解决方案仅依赖于将屏幕上的第四个按钮居中,但是如果第二个按钮 不是,则不讨论如何实现此目的居中。

ConstraintLayout是完美的布局,可以用作父布局来完成此任务。 ConstraintLayout允许您执行的最重要的事情是,将一个视图基于另一个视图居中,而不论“锚定”视图的位置如何。

enter image description here

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/one"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toLeftOf="@+id/two"
        android:text="ONE"/>

    <Button
        android:id="@+id/two"
        android:layout_width="60dp"
        android:layout_height="wrap_content"
        app:layout_constraintLeft_toRightOf="@+id/one"
        app:layout_constraintRight_toLeftOf="@+id/three"
        android:text="TWO"/>

    <Button
        android:id="@+id/three"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        app:layout_constraintLeft_toRightOf="@+id/two"
        app:layout_constraintRight_toRightOf="parent"
        android:text="THREE"/>

    <Button
        android:id="@+id/four"
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        app:layout_constraintTop_toBottomOf="@+id/two"
        app:layout_constraintLeft_toLeftOf="@+id/two"
        app:layout_constraintRight_toRightOf="@+id/two"
        android:text="FOUR"/>

</android.support.constraint.ConstraintLayout>