假设我们有一个底部导航栏和一个置顶的FAB。当使用此设置并显示Snackbar时,Snackbar应出现在底部导航栏上方,并在出现/消失时推动FAB上下。
这是使用CoordinatorLayout的常见情况。是否也可以使用新的MotionLayout创建此动画?
问题跟踪器中有一个问题,但已关闭,因为OP没有清楚地阐述问题(https://issuetracker.google.com/issues/112665540)
我尝试时遇到的问题:我们无法访问Snackbar的布局ID。我们也无法访问Snackbar的一般xml,因此无法设置其约束条件。
更新:我理解提供一段代码作为答案的起点会有所帮助。但是,我想到的任何代码片段都没有用处。我现在确定了两个主要问题:
这是使用CoordinatorLayout的常见情况。是否也可以使用新的MotionLayout创建此动画?
问题跟踪器中有一个问题,但已关闭,因为OP没有清楚地阐述问题(https://issuetracker.google.com/issues/112665540)
我尝试时遇到的问题:我们无法访问Snackbar的布局ID。我们也无法访问Snackbar的一般xml,因此无法设置其约束条件。
更新:我理解提供一段代码作为答案的起点会有所帮助。但是,我想到的任何代码片段都没有用处。我现在确定了两个主要问题:
我不知道Snackbar的layout-id,因此无法在编写场景描述时使用它。
即使我可以创建场景描述(例如:State1:SnackBar可见,State2:SnackBar不可见),我也必须手动触发这些场景转换。这意味着我将重新创建自己的Snackbar,而不是像原本预期的那样使用原始的Snackbar。
评论: @mikejonesguy 是的,在我看来它们很相似。虽然不完全一样,但MotionLayout也有你所描述的功能:协调其子视图之间的交互。将“coordinate”替换为“animate”,你就会明白我的意思。还可以查看OnSwipe/OnClick处理程序。MotionLayout仍然非常新颖,但我认为它将取代CoordinatorLayout,就像ConstraintLayout取代RelativeLayout一样。也许我错了,也许不是...时间会证明一切。
结论: 就我而言,目前似乎没有仅使用MotionLayout就能实现我想要的方式。如果有一天可能实现,我会用一个有效的示例更新这个问题。对于无法实现的悬赏,我感到抱歉... :)