【问题标题】:Set layout_anchor at runtime on FloatingActionButton在运行时在 FloatingActionButton 上设置 layout_anchor
【发布时间】:2015-10-14 07:16:52
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

    如果你有一个带有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);
    

    【讨论】:

    • 这看起来很有希望。这样设置layout_anchorGravity怎么样?
    • 我可以将 layout_anchorGravity 留在布局 xml 中,然后像上面所说的那样设置锚 id。这很棒!谢谢
    • 这确实适用于动态设置锚点,但是它不能解决提到的共享元素转换问题in this question。设置锚点似乎使动画失效。没有设置任何锚,动画似乎工作正常。
    • 如果我在添加视图之后设置它什么都不会做,如果我在添加视图之前设置它会崩溃...
    猜你喜欢
    • 2016-09-23
    • 1970-01-01
    • 1970-01-01
    • 2019-03-07
    • 1970-01-01
    • 1970-01-01
    • 2016-08-05
    • 2017-02-08
    • 2011-02-23
    相关资源
    最近更新 更多