Android:将FAB设置为像SnackBar一样的对话框

时间:2017-05-05 10:13:19

标签: android-animation android-dialog android-coordinatorlayout floating-action-button android-snackbar

我在CoordinatorLayout底部显示一个fab按钮。在FAB的顶部,我想显示一个对话框(从底部设置动画)并将FAB设置为同一对话框的顶部,并使其像对话框的关闭按钮一样工作。

我知道如果我们将CoordinatorLayout与FAB一起使用,SnackBar会使用相同类型的动画,但我也想让对话框进入和退出相同的动画。

有什么方法可以实现相同的动画吗?

1 个答案:

答案 0 :(得分:0)

显示您的零食栏

public static void showSnackBar(@NonNull View view, @NonNull CharSequence text,
                                    @Snackbar.Duration int duration) {
        Snackbar snack = Snackbar.make(view, text, duration);
        TextView snackTextView = (TextView) snack.getView().findViewById(android.support.design.R.id.snackbar_text);
        snackTextView.setMaxLines(5);
        snack.show();
    }

此处视图是您对协调员布局的引用

在你的xml中你的fab按钮就像这样

<android.support.design.widget.CoordinatorLayout 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:id="@+id/coordinatorLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

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



        <android.support.v4.widget.SwipeRefreshLayout
            android:id="@+id/stream_refresh_layout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"

            >

            <android.support.v7.widget.RecyclerView
                android:id="@+id/stream_recyclerview"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:focusable="false"
                android:scrollbars="vertical" />
        </android.support.v4.widget.SwipeRefreshLayout>




        <ProgressBar
            android:id="@+id/groupLoadingView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true" />
    </RelativeLayout>

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/postButton"
        android:layout_width="58dp"
        android:layout_height="58dp"
        android:layout_marginBottom="16dp"
        android:layout_marginRight="16dp"
        android:scaleType="center"
        android:src="@drawable/chat_newpost_button_selector"
        app:backgroundTint="@color/light_blue_color"
        app:borderWidth="0dp"
        app:elevation="6dp"
        app:layout_anchor="@+id/stream_recyclerview"
        app:layout_anchorGravity="bottom|right|end" />

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