在运行时在 FloatingActionButton 上设置 layout_anchor

Set layout_anchor at runtime on FloatingActionButton

我正在尝试为固定到我的 AppBarLayout 的 android.support.design.widget.FloatingActionButton 制作动画。我可以在布局 xml 中很好地设置它,它显示得很好。但是我正在对此布局执行共享元素转换,并且 FAB 在设置视图之前显示。我尝试将可见性设置为 GONE 和 INVISIBLE,但如果在布局 xml 中设置 layout_anchor,它们似乎会被忽略。反正有这个吗?

我希望 activity 加载共享元素过渡,然后在我的 FAB 中淡入淡出。我只是无法在加载时隐藏 FAB。我可以在不使用 layout_anchor 的情况下做到这一点,但如果可能的话我更愿意保留它。

如果您有一个带有 app:layout_anchor 属性的 FAB,并且您想要设置可见性,您应该使用这样的东西:

CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) fab.getLayoutParams();
params.setAnchorId(View.NO_ID);
fab.setLayoutParams(params);
fab.setVisibility(View.GONE);

如果您想动态设置app:layout_anchor,您可以使用相同的代码:

CoordinatorLayout.LayoutParams p = (CoordinatorLayout.LayoutParams) fab.getLayoutParams();
p.setAnchorId(xxxx);
fab.setLayoutParams(p);