按钮位于linear_layout下方,但输出位于linear_layout

时间:2017-10-16 15:40:28

标签: android android-layout

我正在开发一个Android应用程序,其中我将一些按钮放在线性布局中。在线性布局之后,我在右下角放置了一个“下一个”按钮。但它在运行应用程序后会转到左上角。线性布局位于约束布局中,线性布局下方的“下一个”按钮位于约束布局中。

<LinearLayout
    android:id="@+id/toolbar"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginTop="-11dp"
    android:orientation="vertical"
    app:layout_constraintHorizontal_bias="0.0"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent">


    <mehdi.sakout.fancybuttons.FancyButton
        android:id="@+id/btn_spotify"
        android:layout_width="300dp"
        android:layout_height="55dp"
        android:layout_gravity="center"
        android:layout_marginTop="20dp"
        android:paddingBottom="10dp"
        android:paddingLeft="20dp"
        android:paddingRight="20dp"
        android:paddingTop="10dp"
        fancy:fb_borderColor="#f4d282"
        fancy:fb_borderWidth="3dp"
        fancy:fb_defaultColor="#bfc9d1"
        fancy:fb_focusColor="#97f7ec"
        fancy:fb_iconPosition="left"
        fancy:fb_iconResource="@drawable/ic_image_black_24dp"

        fancy:fb_radius="20dp"
        fancy:fb_text="LOAD PICTURE"
        fancy:fb_textColor="#121111"
        fancy:fb_textSize="20dp" />

    <mehdi.sakout.fancybuttons.FancyButton
        android:id="@+id/btn_spotify2"
        android:layout_width="300dp"
        android:layout_height="55dp"
        android:layout_gravity="center"
        android:layout_marginTop="10dp"
        android:paddingBottom="10dp"
        android:paddingLeft="20dp"
        android:paddingRight="20dp"
        android:paddingTop="10dp"
        fancy:fb_borderColor="#f4d282"
        fancy:fb_borderWidth="3dp"
        fancy:fb_defaultColor="#bfc9d1"
        fancy:fb_focusColor="#97f7ec"
        fancy:fb_iconPosition="left"
        fancy:fb_iconResource="@drawable/ic_edit_black_24dp"

        fancy:fb_radius="20dp"
        fancy:fb_text="MANAGE SCHEDULE"
        fancy:fb_textColor="#121111"
        fancy:fb_textSize="20dp" />

    <mehdi.sakout.fancybuttons.FancyButton
        android:id="@+id/btn_spotify3"
        android:layout_width="300dp"
        android:layout_height="55dp"
        android:layout_gravity="center"
        android:layout_marginTop="10dp"
        android:paddingBottom="10dp"
        android:paddingLeft="20dp"
        android:paddingRight="20dp"
        android:paddingTop="10dp"
        fancy:fb_borderColor="#f4d282"
        fancy:fb_borderWidth="3dp"
        fancy:fb_defaultColor="#bfc9d1"
        fancy:fb_focusColor="#97f7ec"
        fancy:fb_iconPosition="left"
        fancy:fb_iconResource="@drawable/ic_access_alarm_black_24dp"

        fancy:fb_radius="20dp"
        fancy:fb_text="SET MENUALLY"
        fancy:fb_textColor="#121111"
        fancy:fb_textSize="20dp" />

    <Button
        android:id="@+id/btn_process"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/buttonLoadPicture"
        android:foregroundGravity="center_horizontal"
        android:scaleType="centerInside"
        android:text="PROCESS" />

    <Button
        android:id="@+id/btn_next"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/btn_process"
        android:foregroundGravity="center_horizontal"
        android:scaleType="centerInside"
        android:text="Next Page" />

    <ImageView
        android:id="@+id/imgView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:scaleType="centerInside" />

    <TextView
        android:id="@+id/textview_result"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/btn_process"
        android:foregroundGravity="center_horizontal"
        android:scaleType="centerInside"
        android:text="NO TEXT"
        android:textSize="18sp" />




</LinearLayout>

<mehdi.sakout.fancybuttons.FancyButton
    android:id="@+id/btn_spotify4"
    android:layout_width="150dp"
    android:layout_height="55dp"
    android:layout_gravity="center"
    android:paddingBottom="10dp"
    android:paddingLeft="20dp"
    android:paddingRight="20dp"
    android:paddingTop="10dp"
    fancy:fb_borderColor="#f4d282"
    fancy:fb_borderWidth="3dp"
    fancy:fb_defaultColor="#bfc9d1"
    fancy:fb_focusColor="#97f7ec"
    fancy:fb_iconPosition="right"
    fancy:fb_iconResource="@drawable/ic_arrow_forward_black_24dp"

    fancy:fb_radius="20dp"
    fancy:fb_text="Next"
    fancy:fb_textColor="#121111"
    fancy:fb_textSize="20dp"
    tools:layout_editor_absoluteX="208dp"
    tools:layout_editor_absoluteY="420dp" />

enter image description here

2 个答案:

答案 0 :(得分:1)

为“下一步”按钮创建底部约束。 在下一个按钮中定义此约束:

 app:layout_constraintBottom_toBottomOf="parent"
 app:layout_constraintRight_toRightOf="parent"
 app:layout_constraintEnd_toEndOf="parent"

每个视图必须至少有一个约束。

来自官方文档:

  

要在ConstraintLayout中定义视图的位置,您必须至少添加   视图的一个水平约束和一个垂直约束。每   约束表示与另一个视图的连接或对齐,   父布局或隐形指南。每个约束定义了   视图沿垂直轴或水平轴的位置;所以每一个   视图必须对每个轴至少有一个约束,但通常   更多是必要的。

在此处了解详情:https://developer.android.com/training/constraint-layout/index.html

答案 1 :(得分:0)

如果要将“下一步”按钮保持在“无文本”文本视图下方,则只需将“按钮”按钮放在“线性”布局(id:工具栏)中,并将其保留为布局结束。将按钮保持在此布局中后,NEXT按钮将显示在底部。