Android工作室横向布局麻烦

时间:2018-06-06 18:13:09

标签: android android-layout android-studio layout

所以,我试图得到这样的东西。

enter image description here

我在排队同一行的 + - 按钮时出现问题。

一旦我有水平布局,我就拖动按钮。我最终得到了这个。从代码或设计窗口我不知道如何使它工作。请帮忙。

enter image description here

任何解决方案?

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context=".MainActivity"
    tools:showIn="@layout/activity_main">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_marginTop="0dp"
        android:orientation="horizontal">

        <Button
            android:id="@+id/suma"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="171dp"
            android:layout_weight="1"
            android:onClick="incrementaContador"
            android:text="+" />

        <Button
            android:id="@+id/resta"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true"
            android:layout_marginBottom="169dp"
            android:layout_weight="1"
            android:onClick="restaContador"
            android:text="-" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:orientation="vertical">

        <TextView
            android:id="@+id/titulo"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="15dp"
            android:text="Cafe del dia "
            android:textAlignment="center" />

        <TextView
            android:id="@+id/contadorA"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="64dp"
            android:textAlignment="center"
            android:textSize="24sp"
            android:textStyle="bold" />
    </LinearLayout>

    <Button
        android:id="@+id/reinicio"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="Reinicio"
        android:onClick="reseteaContador" />
</RelativeLayout>

5 个答案:

答案 0 :(得分:0)

我认为你需要这样的东西。将此代码粘贴到代码窗口中。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior">

    <TextView
        android:id="@+id/titulo"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="40dp"
        android:text="Cafe del dia " />

    <TextView
        android:id="@+id/contadorA"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/titulo"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="16dp"
        android:text="4"
        android:textSize="24sp"
        android:textStyle="bold" />

    <LinearLayout
        android:id="@+id/button_layout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/contadorA"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="60dp"
        android:orientation="horizontal">

        <Button
            android:id="@+id/suma"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:layout_margin="16dp"
            android:onClick="incrementaContador"
            android:text="+"
            android:textSize="30sp" />

        <Button
            android:id="@+id/resta"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:layout_margin="16dp"
            android:onClick="restaContador"
            android:text="-"
            android:textSize="30sp"
            android:textStyle="bold" />
    </LinearLayout>

    <Button
        android:id="@+id/reinicio"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="40dp"
        android:onClick="reseteaContador"
        android:text="Reinicio" />
</RelativeLayout>

从我的角度来看,通过编码来获得合适的设计更容易。我有这样的事情。

enter image description here

答案 1 :(得分:0)

你有

android:layout_alignParentTop="true" android:layout_marginTop="171dp"

在一个按钮上

android:layout_alignParentTop="true" android:layout_marginBottom="169dp"

另一方面。

试试这个:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context=".MainActivity"
    tools:showIn="@layout/activity_main">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:orientation="horizontal">

        <Button
            android:id="@+id/suma"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_weight="1"
            android:onClick="incrementaContador"
            android:text="+" />


        <Button
            android:id="@+id/resta"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_weight="1"
            android:onClick="restaContador"
            android:text="-" />


    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:orientation="vertical">

        <TextView
            android:id="@+id/titulo"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="15dp"
            android:text="Cafe del dia "
            android:textAlignment="center" />

        <TextView
            android:id="@+id/contadorA"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="64dp"
            android:textAlignment="center"
            android:textSize="24sp"
            android:textStyle="bold" />
    </LinearLayout>

    <Button
        android:id="@+id/reinicio"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="Reinicio"
        android:onClick="reseteaContador"
        />


</RelativeLayout>

答案 2 :(得分:0)

您有太多嵌套视图。您可以使用垂直线性布局作为父视图组,使用水平线性布局,布局权重1 用于中间两个按钮。

例如:

<?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="vertical">

<TextView
    android:id="@+id/titulo"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="15dp"
    android:text="Cafe del dia "
    android:textAlignment="center" />

<TextView
    android:id="@+id/contadorA"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="10dp"
    android:textAlignment="center"
    android:textSize="24sp"
    android:text="24"
    android:textStyle="bold" />

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:gravity="center"
    android:layout_weight="1">

    <Button
        android:id="@+id/suma"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginRight="30dp"
        android:onClick="incrementaContador"
        android:text="+" />

    <Button
        android:id="@+id/resta"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="restaContador"
        android:text="-" />

</LinearLayout>

<Button
    android:id="@+id/reinicio"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:text="Reinicio"
    android:onClick="reseteaContador" />

</LinearLayout>

最好在学习使用后使用constraintLayout。

答案 3 :(得分:0)

您应该使用ConstraintLayout来实现您想要的效果。它比使用RelativeLayout更有效,特别是在其中嵌套子布局。使用ConstraintLayout,您可以使用GUI构建器在屏幕上拖动元素并使它们像素完美。 ConstraintLayout可能需要一些工作,但它非常强大,当您拥有由许多嵌套ViewGroup组成的复杂Viewgroup层次结构时,您可以获得重大的性能提升。

但是,这里解决您的问题的方法是更新代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                xmlns:app="http://schemas.android.com/apk/res-auto"
                xmlns:tools="http://schemas.android.com/tools"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                app:layout_behavior="@string/appbar_scrolling_view_behavior"
                tools:context=".MainActivity"
                tools:showIn="@layout/activity_main">

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

        <Button
            android:id="@+id/suma"
            android:layout_width="75dp"
            android:layout_height="75dp"
            android:layout_marginRight="15dp"
            android:onClick="incrementaContador"
            android:textSize="35sp"
            android:text="+" />

        <Button
            android:id="@+id/resta"
            android:layout_width="75dp"
            android:layout_height="75dp"
            android:layout_marginLeft="15dp"
            android:onClick="restaContador"
            android:textSize="35sp"
            android:text="-" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:orientation="vertical">

        <TextView
            android:id="@+id/titulo"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textSize="30sp"
            android:text="Contender"
            android:textAlignment="center" />

        <TextView
            android:id="@+id/contadorA"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textAlignment="center"
            android:textSize="35sp"
            android:text="4"
            android:textStyle="bold" />
    </LinearLayout>

    <Button
        android:id="@+id/reinicio"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="15dp"
        android:layout_centerInParent="true"
        android:layout_alignParentBottom="true"
        android:onClick="reseteaContador"
        android:text="Reinicio"
        />

</RelativeLayout>

答案 4 :(得分:-1)

在图片上看到将文本框放在按钮下方的属性。 然后你得到红色圆圈中的斜线表示关系。 如何在页面下方进一步展开,我还在努力。 (你可以使用填充,但我确定有更好的解决方案) click