4

我有以下布局:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/create_workout_fab_container"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="@dimen/activity_horizontal_margin"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:background="@drawable/fab"
android:stateListAnimator="@anim/fab_elevation"
android:clickable="true"
>

<android.support.v7.widget.CardView
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:id="@+id/create_workout_fab_anim_helper"
    android:layout_width="@dimen/fab_size"
    android:layout_height="@dimen/fab_size"
    card_view:cardBackgroundColor="@color/primary_dark"
    card_view:cardCornerRadius="@dimen/fab_radius"
    android:visibility="invisible"
    />
<TextView
    android:id="@+id/create_workout_fab_label"
    android:layout_width="@dimen/fab_size"
    android:layout_height="@dimen/fab_size"
    android:background="@drawable/fab_ripple_selector"
    android:textAppearance="?android:textAppearanceLarge"
    android:text="+"
    android:textColor="@color/fab_label_color"
    android:duplicateParentState="true"
    android:gravity="center"
    tools:text="+"
    tools:textColor="@color/fab_label_color"
    />



    </FrameLayout>

CardView 仅用于通过动画半径变化将其用于从圆形按钮到矩形视图的平滑动画。

但问题是,只要 CardView 变得可见,它就会停留在 TextView 之上。为什么会这样,我如何让它放在 TextView 下

4

1 回答 1

6

FrameLayout 按顺序绘制孩子,从​​前到后。因此,您需要将 CardView 与 TextView 交换。

更新:此外,如果您在 android L+ 上运行,则需要在 CardView 上设置比 TextView 更高的高度

于 2014-12-10T21:39:45.990 回答