我尝试使用圆形显示在单击FAB时在LinearLayout中设置动画。
Onclick,视图会在一段时间延迟后变为可见,但是没有可见的动画运行?此外,当函数反转为退出动画时,视图在动画持续时间内不可见。
代码:
//Rest of method triggered onClick Above
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){
circleReveal(formcontainer,addnewbutton);
ObjectAnimator.ofFloat(addnewbutton, "translationY", -heightbutton).start();
}
}
public void circleReveal(LinearLayout formLayout, FloatingActionButton fab) {
int cx = (fab.getLeft() + fab.getRight()) / 2;
int cy = (fab.getTop() + fab.getBottom()) / 2;
int radius = Math.max(formLayout.getWidth(), formLayout.getHeight());
Animator reveal = createCircularReveal(formLayout, cx, cy, 0, radius);
formLayout.setVisibility(View.VISIBLE);
reveal.setDuration(2000);
reveal.start();
}
非常感谢您的帮助!
[编辑]经过测试,我发现它只是这个观点,它失败了吗?我的布局中我尝试过的其他每个视图都可以正常工作吗?
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/formcontainer"
android:background="@android:color/white"
android:layout_width="match_parent"
android:layout_height="65dp"
android:orientation="vertical"
android:baselineAligned="false"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:gravity="bottom"
android:layout_marginBottom="0dp"
android:elevation="4dp"
android:layout_alignParentBottom="true">
[编辑2]所以,我已经部分解决了这个问题,因为动画现在有效,但只有当中心不是从FAB计算出来的时候?
答案 0 :(得分:0)
圆形动画相对于视图本身运行。所以,你的中心应该是:
int cx = fab.getWidth() / 2;
int cy = fab.getHeight() / 2;