Плавающая кнопка действия, идущая ниже CardView на pre Lollipop

Я разрабатываю приложение для Android. В нем есть две карты и одна FAB между этими двумя картами. Экран выглядит идеально в API 21, но ниже 21 нижняя половина кнопки находится ниже второй карты. Два изображения были прикреплены: ПРОСМОТР ДО API 21 и ПРОСМОТР НА API 21.Пожалуйста, помогите. Спасибо!

XML:

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

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">

    <View
        android:background="@color/colorAccent"
        android:layout_height="5dip"
        android:layout_gravity="start"
        android:layout_marginBottom="10dp"
        android:layout_width="match_parent" />

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:layout_marginTop="05dp">

<android.support.v7.widget.CardView
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/header"
    app:cardUseCompatPadding="true"
    android:layout_marginStart="-4dp"
    android:layout_marginLeft="-4dp"
    android:layout_marginBottom="-4dp"
    android:layout_marginTop="-4dp"
    android:layout_marginRight="-4dp"
    android:layout_marginEnd="-4dp"
    android:paddingLeft="10dp"
    android:paddingRight="10dp"
    android:paddingTop="10dp"
    android:elevation="500dp"
    app:cardCornerRadius="5dp">

    //First CARDVIEW ELEMENTS 

</android.support.v7.widget.CardView>

    <android.support.design.widget.FloatingActionButton
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/action_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:cardUseCompatPadding="true"
        android:clickable="true"
        android:onClick="SampleClick"
        android:layout_alignParentRight="true"
        android:src="@mipmap/create_button"
        android:layout_alignBottom="@id/header"
        android:layout_marginBottom="-32dp"
        android:layout_marginRight="20dp" />

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="150dp"
        android:layout_below="@id/header">

        <View
            android:background="@color/colorAccent"
            android:layout_height="5dip"
            android:layout_gravity="start"
            android:layout_width="match_parent" />

        <android.support.v7.widget.CardView
            xmlns:app="http://schemas.android.com/apk/res-auto"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/footer"
            android:paddingLeft="10dp"
            android:paddingRight="10dp"
            android:paddingTop="10dp"
            app:cardUseCompatPadding="true"
            android:layout_marginStart="-4dp"
            android:layout_marginLeft="-4dp"
            android:layout_marginBottom="-4dp"
            android:layout_marginTop="-4dp"
            android:layout_marginRight="-4dp"
            android:layout_marginEnd="-4dp"
            android:elevation="500dp"
            app:cardCornerRadius="5dp">

    //SECOND CARDVIEW ELEMENTS           

            </android.support.v7.widget.CardView>
        </LinearLayout>
    </RelativeLayout>
        </RelativeLayout>
    </ScrollView>

</RelativeLayout>

person Tejas    schedule 22.02.2016    source источник
comment
Я предоставляю вам пример, пожалуйста, посмотрите   -  person Mina Fawzy    schedule 22.02.2016


Ответы (1)


вы можете добиться этого, добавив тег layout_anchor к вашему FloatingActionButton, это означает, что я нарисую плавание над этим представлением, для этого вам также потребуется изменить свой верхний макет на CoordinatorLayout

пожалуйста, взгляните

<android.support.design.widget.CoordinatorLayout
    android:id="@+id/main_content"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto" // add this line
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v7.widget.CardView
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/header"
    app:cardUseCompatPadding="true"
    android:layout_marginStart="-4dp"
    android:layout_marginLeft="-4dp"
    android:layout_marginBottom="-4dp"
    android:layout_marginTop="-4dp"
    android:layout_marginRight="-4dp"
    android:layout_marginEnd="-4dp"
    android:paddingLeft="10dp"
    android:paddingRight="10dp"
    android:paddingTop="10dp"
    android:elevation="500dp"
    app:cardCornerRadius="5dp">

    //First CARDVIEW ELEMENTS 

</android.support.v7.widget.CardView>
    <android.support.design.widget.FloatingActionButton
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_gravity="bottom|right"
              android:layout_margin="16dp"
              android:src="@drawable/ic_done"
              app:layout_anchor="@id/header" // whatever you want
              app:layout_anchorGravity="bottom|right|end" />


<android.support.v7.widget.CardView
            xmlns:app="http://schemas.android.com/apk/res-auto"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/footer"
            android:paddingLeft="10dp"
            android:paddingRight="10dp"
            android:paddingTop="10dp"
            app:cardUseCompatPadding="true"
            android:layout_marginStart="-4dp"
            android:layout_marginLeft="-4dp"
            android:layout_marginBottom="-4dp"
            android:layout_marginTop="-4dp"
            android:layout_marginRight="-4dp"
            android:layout_marginEnd="-4dp"
            android:elevation="500dp"
            app:cardCornerRadius="5dp">

    //SECOND CARDVIEW ELEMENTS           

            </android.support.v7.widget.CardView>


</android.support.design.widget.CoordinatorLayout> 
person Mina Fawzy    schedule 22.02.2016