在FloatingActionButton上运行时设置layout_anchor

时间:2015-07-23 19:36:05

标签: android android-support-library android-design-library android-coordinatorlayout android-support-design

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

我希望活动加载共享元素转换然后淡入我的FAB。我只是无法隐藏FAB的负载。我可以在不使用layout_anchor的情况下完成它,但如果可能的话,我更愿意保留它。

1 个答案:

答案 0 :(得分:33)

如果您的FAB具有app:layout_anchor属性,并且您想要设置可见性,则应使用以下内容:

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

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

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