如何在Constraint Layout内的屏幕右下方放置浮动操作按钮?

时间:2018-03-02 12:42:21

标签: android floating-action-button android-constraintlayout

我的顶部有ScrollView,里面有ConstraintLayout。将高度设置为match_parent在ConstraintLayout中不起作用,因此高度与屏幕不匹配。在ConstraintLayout内,我有一个浮动操作按钮,它不会停留在屏幕的右下角,但它位于ConstraintLayout的右下角。

我的屏幕图片

enter image description here

如何让浮动操作按钮停留在屏幕的右下角?

5 个答案:

答案 0 :(得分:1)

如果您的FAB在约束布局内,请尝试这样

<android.support.constraint.ConstraintLayout
    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">

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/floatingActionButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="8dp"
        android:layout_marginEnd="8dp"
        android:clickable="true"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:srcCompat="@drawable/icon" />
</android.support.constraint.ConstraintLayout>

答案 1 :(得分:1)

 <android.support.design.widget.FloatingActionButton
    android:id="@+id/contactBtn"
    android:layout_width="53dp"
    android:layout_height="62dp"
    android:clickable="true"
    android:layout_gravity="bottom|right"
    app:srcCompat="@android:drawable/ic_menu_send" />

这对我有用。

android:layout_gravity="bottom|right"

答案 2 :(得分:0)

我所做的是将FAB放在与应用栏相同的级别,使其独立于该页面上显示的内容(使用协调器布局)。

尝试将FAB放在应用栏级别而不是内容级别。看看它是否有效。

答案 3 :(得分:0)

尝试使用CoordinatorLayout代替下面的布局

<android.support.design.widget.AppBarLayout
    android:id="@+id/appbarMain"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:theme="@style/AppTheme.AppBarOverlay">

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbarMain"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        app:popupTheme="@style/AppTheme.PopupOverlay">
    </android.support.v7.widget.Toolbar>

</android.support.design.widget.AppBarLayout>

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginTop="60dp">

    ........
    ........
</RelativeLayout> 

  <android.support.design.widget.FloatingActionButton
    android:id="@+id/fab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom|end"
    android:layout_margin="@dimen/fab_margin"
    android:src="@android:drawable/ic_dialog_email" />

</android.support.design.widget.CoordinatorLayout>

了解详情this tutorial.

答案 4 :(得分:0)

尝试将FAB放入XML中约束布局父级的同一级别。那应该解决它! 不仅如此,请确保您的父布局不是线性布局!