gpt4 book ai didi

android - 使用新的 MotionLayout 模仿 Snackbar + CoordinatorLayout + FAB

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:09:07 27 4
gpt4 key购买 nike

假设我们有一个顶部有 FAB 的 BottomNavigationBar。使用此设置并显示 Snackbar 时,Snackbar 应出现在 BottomNavigationBar 上方,并在出现/消失时向上/向下插入 FAB。

这是使用 CoordinatorLayout 的常见场景。 是否也可以使用新的 MotionLayout 创建此动画?

错误跟踪器中有一个问题,但它已经关闭,因为 OP 没有明确提出问题 ( https://issuetracker.google.com/issues/112665540 )

我在尝试时遇到的问题:我们无权访问 Snackbar 的布局 ID。我们也无权访问 Snackbar 的通用 xml,因此我们无法设置其约束。

更新:我知道一段代码有助于作为回答这个问题的起点。但是我想出的任何代码都没有用。我现在指出了两个主要问题:

  1. 我不知道 Snackbar 的布局 ID。因此我不能用它来写场景描述。

  2. 即使我可以创建场景描述(例如 State1:​​SnackBar 可见,State2:Snackbar 不可见)。我必须手动触发这些场景转换。这意味着我将重新创建自己的 Snackbar,而不是按预期使用原始 Snackbar。

评论: @mikejonesguy 是的,在我看来它们很相似。不一样,但很相似。 MotionLayout 确实也有你描述的工作:协调其 subview 之间的交互。将“坐标”替换为“动画”,您就会明白我的意思。另请查看 OnSwipe/OnClick 处理程序。 MotionLayout 还是很新鲜的,但我认为它在未来会像 ConstraintLayout 取代 RelativeLayout 一样取代 CoordinatorLayout。也许我错了,也许不是……时间会证明一切。

结论:就我而言,似乎没有办法(还)仅通过使用 MotionLayout 来实现我想要的。如果有一天可能的话,我会用一个有效的例子来更新这个问题。抱歉不可能的赏金... :)

最佳答案

您可以设计您的布局文件,就像 snackbar 位于您的布局层次结构中一样。您需要使用 Constraintlayout 的虚拟辅助对象。虚拟对象是不可见的,但它们在测量和布局期间充当常规 View ,因此它们的目的是帮助您创建所需的精确定位。

snackbars 的默认高度为最小 48dp 和最大 80dp。您将需要这些信息。

关于android - 使用新的 MotionLayout 模仿 Snackbar + CoordinatorLayout + FAB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56089012/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com