如何在Android的同一行中添加两个按钮?

时间:2015-02-23 21:31:24

标签: android xml android-layout

我知道有许多类似的问题,但已知它们对我有效。我希望Turn LeftTurn Right按钮位于同一行。但这是显示的内容:

enter image description here

以下是我目前在fragment_main.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="@android:color/black">

    <TextView 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="This is a simple button app. \r\n \r\nCode Here \r\n"
        android:padding="10dp"
        android:textColor="#FFFFFF"/>

    <Button
        android:id="@+id/buttonGoStraight"
        android:layout_width="125dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="@string/go_straight" />

    <Button
        android:id="@+id/buttonTurnLeft"
        android:layout_width="125dp"
        android:layout_height="wrap_content"
        android:text="@string/turn_left" 
        android:layout_gravity="left"/>

    <Button
        android:id="@+id/buttonTurnRight"
        android:layout_width="125dp"
        android:layout_height="wrap_content"
        android:text="@string/turn_right" 
        android:layout_gravity="right"/>

    <Button
        android:id="@+id/buttonGoBack"
        android:layout_width="125dp"
        android:layout_height="wrap_content"
        android:text="@string/go_back" 
        android:layout_gravity="center_horizontal"/>

    <TextView 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="\n"/>

    <Button
        android:id="@+id/buttonGoBack"
        android:layout_width="125dp"
        android:layout_height="wrap_content"
        android:text="@string/destination" 
        android:gravity="center"
        android:layout_gravity="center_horizontal"/>

</LinearLayout>

我是初学者,不知道如何解决这个问题。有什么建议吗?

4 个答案:

答案 0 :(得分:1)

问题是您的布局采用垂直方向。使用此

<?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="@android:color/black">



    <TextView 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="This is a simple button app. \r\n \r\nCode Here \r\n"
        android:padding="10dp"
        android:textColor="#FFFFFF"/>

  <LinearLayout 
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@android:color/black">

    <Button
        android:id="@+id/buttonGoStraight"
        android:layout_width="125dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="@string/go_straight" />

    <Button
        android:id="@+id/buttonTurnLeft"
        android:layout_width="125dp"
        android:layout_height="wrap_content"
        android:text="@string/turn_left" 
        android:layout_gravity="left"/>

    <Button
        android:id="@+id/buttonTurnRight"
        android:layout_width="125dp"
        android:layout_height="wrap_content"
        android:text="@string/turn_right" 
        android:layout_gravity="right"/>
</LinearLayout> 

</LinearLayout>

答案 1 :(得分:1)

将按钮包装到另一个android:orientation设置为horizontal的LinearLayout中:

enter image description here

<?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="@android:color/black">

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="This is a simple button app. \r\n \r\nCode Here \r\n"
        android:padding="10dp"
        android:textColor="#FFFFFF"/>

    <Button
        android:id="@+id/buttonGoStraight"
        android:layout_width="125dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="@string/go_straight" />

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

        <Button
            android:id="@+id/buttonTurnLeft"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/turn_left"
            android:layout_weight="1"
            />

        <Button
            android:id="@+id/buttonTurnRight"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/turn_right"
            android:layout_weight="1"
            />
    </LinearLayout>

    <Button
        android:id="@+id/buttonGoBack"
        android:layout_width="125dp"
        android:layout_height="wrap_content"
        android:text="@string/go_back"
        android:layout_gravity="center_horizontal"/>

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="\n"/>

    <Button
        android:id="@+id/buttonGoBack"
        android:layout_width="125dp"
        android:layout_height="wrap_content"
        android:text="@string/destination"
        android:gravity="center"
        android:layout_gravity="center_horizontal"/>

</LinearLayout>

答案 2 :(得分:0)

如果你想保持当前的按钮宽度,请使用这样的布局:

<?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="@android:color/black">

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="This is a simple button app. \r\n \r\nCode Here \r\n"
        android:padding="10dp"
        android:textColor="#FFFFFF"/>

    <Button
        android:id="@+id/buttonGoStraight"
        android:layout_width="125dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="@string/go_straight" />

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

        <LinearLayout
            android:orientation="vertical"
            android:layout_width="0dp"
            android:layout_height="fill_parent"
            android:layout_weight="50">

            <Button
                android:id="@+id/buttonTurnLeft"
                android:layout_width="125dp"
                android:layout_height="wrap_content"
                android:text="@string/turn_left"
                android:layout_gravity="left"/>
        </LinearLayout>

        <LinearLayout
            android:orientation="vertical"
            android:layout_width="0dp"
            android:layout_height="fill_parent"
            android:layout_weight="50">

            <Button
                android:id="@+id/buttonTurnRight"
                android:layout_width="125dp"
                android:layout_height="wrap_content"
                android:text="@string/turn_right"
                android:layout_gravity="right" />
        </LinearLayout>

    </LinearLayout>

    <Button
        android:id="@+id/buttonGoBack"
        android:layout_width="125dp"
        android:layout_height="wrap_content"
        android:text="@string/go_back"
        android:layout_gravity="center_horizontal"/>

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="\n"/>

    <Button
        android:id="@+id/buttonGoBack"
        android:layout_width="125dp"
        android:layout_height="wrap_content"
        android:text="@string/destination"
        android:gravity="center"
        android:layout_gravity="center_horizontal"/>

</LinearLayout>

答案 3 :(得分:0)

您可以使用RelativeLayout并指定toRightof。这样您就不会使用会降低性能的额外布局控件。