我们如何将浮动操作按钮放在任何布局的顶部

时间:2017-07-10 19:07:53

标签: android floating-action-button

我正在对浮动动作按钮进行一些操作。我有一个列表视图,并在我的屏幕底部显示谷歌广告,浮动操作按钮显示在同一个地方(底部|结束)。所以操作按钮隐藏了广告。

我希望将浮动操作按钮移到广告线性布局上方。

请看一下图片: enter image description here

我的代码如下:

<android.support.design.widget.FloatingActionButton
     android:id="@+id/fab"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_margin="@dimen/fab_margin"
     android:layout_alignParentBottom="true"
     android:layout_alignParentEnd="true"
     android:layout_alignParentRight="true"
     android:layout_gravity="bottom|end"
     android:src="@drawable/fav"
     android:adjustViewBounds="false" />


adLayoutId is ad layout id

请帮忙。

提前致谢。

5 个答案:

答案 0 :(得分:5)

您应该使用RelativeLayout,而且正如我们所知,RelativeLayout中的后来儿童往往漂浮在RelativeLayout的早期儿童身上。

因此,要让FAB浮动任何布局,请确保在所有视图之后定义FAB(在XML布局的末尾)。

如果使用android:layout_margin="@dimen/fab_margin",操作FAB的最佳方法是在视图之间设置依赖关系,例如:

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

    <ListView
        android:id="@+id/listView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@id/adLayoutId"/>

    <LinearLayout
        android:id="@+id/adLayoutId"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_alignParentBottom="true"
        android:background="@android:color/black"/>

    <android.support.design.widget.FloatingActionButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@id/adLayoutId"
        android:layout_alignParentRight="true"
        android:layout_margin="@dimen/fab_margin"
        android:src="@drawable/fav"/>
</RelativeLayout>

浮动操作按钮始终位于广告线性布局上方,与广告布局尺寸无关。 希望它有所帮助。

答案 1 :(得分:1)

工厂按钮中的这两行帮助我解决了这个问题:

echo $PATH

这是我仅用于按钮的全部代码:

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

答案 2 :(得分:0)

添加55dp的底部边距,这是Admob Banners的尺寸

此行位于浮动按钮或封闭布局中。

android:layout_marginBottom="55dp

答案 3 :(得分:0)

<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_marginBottom="100dp"
        android:layout_marginRight="30dp"
       />

答案 4 :(得分:0)

这两条线很重要。

android:layout_alignParentEnd =“ true”

android:layout_alignParentBottom =“ true”