按钮位置无法正确放置

时间:2017-10-16 07:01:17

标签: android

我正在开发一个Android应用程序,但按钮无法放置正确的位置。我使用layout_width="match_parent"但是它会向右侧移动。 layout_gravity= "center"也是一样。

<LinearLayout
android:layout_width="368dp"
android:layout_height="495dp"
android:orientation="vertical"
    tools:layout_editor_absoluteY="8dp"
    tools:layout_editor_absoluteX="8dp">

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

    <mehdi.sakout.fancybuttons.FancyButton
        android:id="@+id/btn_spotify"
        android:layout_width="match_parent"
        android:layout_height="45dp"
        android:paddingBottom="10dp"
        android:paddingLeft="20dp"
        android:paddingRight="20dp"
        android:paddingTop="10dp"
        fancy:fb_textSize="20dp"
        android:layout_gravity="center_vertical"
        fancy:fb_borderColor="#FFFFFF"
        fancy:fb_iconResource="@drawable/ic_image_black_24dp"
        fancy:fb_borderWidth="1dp"
        fancy:fb_defaultColor="#6495ED"
        fancy:fb_focusColor="#9bd823"

        fancy:fb_iconPosition="left"
        fancy:fb_radius="10dp"
        fancy:fb_text="LOAD PICTURE"
        fancy:fb_textColor="#FFFFFF" />

    <ru.dimorinny.floatingtextbutton.FloatingTextButton
        android:id="@+id/action_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        app:floating_background_color="@color/colorPrimary"
        app:floating_icon="@drawable/ic_image_black_24dp"
        app:floating_title="Load Picture"
        app:floating_title_color="@android:color/white" />


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


    </LinearLayout>

enter image description here

那我该怎么办呢?我想把按钮放在正确的位置上。对于所有Android手机都一样。

4 个答案:

答案 0 :(得分:2)

将主要父级布局Linearlayout的宽度更改为Match_Parent,然后移除tools:layout_editor_absoluteY="8dp"tools:layout_editor_absoluteX="8dp"

编辑:

由于此LinearLayout位于ConstraintLayout之下。您需要指定app:layout_constraintLeft_toLeftOf和            app:layout_constraintRight_toRightOf财产。

<LinearLayout
            android:id="@+id/toolbar"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toTopOf="parent" />

答案 1 :(得分:0)

您为父级LinearLayout指定了固定的高度和宽度。试试

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

或使用relativelayout。

答案 2 :(得分:0)

将父线性布局宽度设置为android:layout_width="match_parent"android:gravity="center_horizontal"

<LinearLayout 
    tools:layout_editor_absoluteX="8dp"
    tools:layout_editor_absoluteY="8dp"
    android:layout_width="match_parent"
    android:layout_height="495dp"
    android:gravity="center_horizontal"
    android:orientation="vertical">

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

    <mehdi.sakout.fancybuttons.FancyButton
        android:id="@+id/btn_spotify"
        android:layout_width="match_parent"
        android:layout_height="45dp"
        android:layout_gravity="center_vertical"
        android:paddingBottom="10dp"
        android:paddingLeft="20dp"
        android:paddingRight="20dp"
        android:paddingTop="10dp"
        fancy:fb_borderColor="#FFFFFF"
        fancy:fb_borderWidth="1dp"
        fancy:fb_defaultColor="#6495ED"
        fancy:fb_focusColor="#9bd823"
        fancy:fb_iconPosition="left"
        fancy:fb_iconResource="@drawable/ic_image_black_24dp"

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

    <ru.dimorinny.floatingtextbutton.FloatingTextButton
        android:id="@+id/action_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        app:floating_background_color="@color/colorPrimary"
        app:floating_icon="@drawable/ic_image_black_24dp"
        app:floating_title="Load Picture"
        app:floating_title_color="@android:color/white" />


    <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" />

    <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>

答案 3 :(得分:-1)

如果您的LinearLayout位于 ConstraintLayout 下,请使用此

app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"