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才能正常工作。
更多动画
在过渡效果发生期间,如果你想让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