FABRevealLayout

介绍:

一个使用Floating Action Button动画切换两个视图的布局,基于Material Design,效果很赞!

运行效果:

使用说明:

FABRevealLayout用起来很简单。你只需在布局里面包含一个Design Support Library的FloatingActionButton以及两个view(这里称为主view与次view)。FABRevealLayout会自动摆放它们的位置并提供两个view之间的动画切换功能。

<com.truizlop.fabreveallayout.FABRevealLayout
    android:id="@+id/fab_reveal_layout"
    android:layout_width="match_parent"
    android:layout_height="@dimen/fab_reveal_height"
    >
    <android.support.design.widget.FloatingActionButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:backgroundTint="@color/some_color"
        android:src="@drawable/some_drawable"
        />
    <RelativeLayout
        android:id="@+id/main_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        ...
    </RelativeLayout>
    <RelativeLayout
        android:id="@+id/secondary_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        ...
    </RelativeLayout>
</com.truizlop.fabreveallayout.FABRevealLayout>

请注意次view背景必须是透明的,那样color animation才能正常工作。

更多动画

fabrl_qotsa.gif

在过渡效果发生期间,如果你想让FABRevealLayout里面的元素也显示动画,或者需要其他的任何操作,你可以注册一个listener。

private void configureFABReveal(FABRevealLayout fabRevealLayout) {
    fabRevealLayout.setOnRevealChangeListener(new OnRevealChangeListener() {
        @Override
        public void onMainViewAppeared(FABRevealLayout fabRevealLayout, View mainView) {}
        @Override
        public void onSecondaryViewAppeared(final FABRevealLayout fabRevealLayout, View secondaryView) {}
    });
}

或者,要主动出发reveal于隐藏动画的话,你可以用如下方法:

fabRevealLayout.revealMainView();
fabRevealLayout.revealSecondaryView();

局限

目前,要让动画正常工作,FABRevealLayout内部的主view和次view高度必须相同。

下载

已上传到JCenter,在build.gradle文件中添加如下依赖:

dependencies{
    compile 'com.truizlop.fabreveallayout:library:1.0.0'
}

需知

FABRevealLayout是基于Saúl Molinero的proof of concept以及Chet Haase对curved animations的解释。

已下载
0