我的MainActivity中有一个imageview。扩展我的 Bottom Sheet 时,MainActivity中的imageview应该更改其位置和大小。
有人可以带领我走上正确的轨道吗?
我试过在按钮单击上设置运动,这有效。我找不到通过展开 Bottom Sheet 来触发运动的方法。
我的最后一个想法是,获取 Bottom Sheet 的滑动偏移量并在运动中使用它……但是如何?
谢谢,GGK
MotionScene.xml
`
<Transition
motion:constraintSetStart="@+id/start"
motion:constraintSetEnd="@+id/end"
motion:duration="1000">
<OnClick
motion:target="@+id/tv_test_button"
motion:mode="toggle"/>
<OnSwipe
motion:touchAnchorId="@+id/bottomSheetLayout"
motion:maxVelocity="1000"
motion:dragDirection="dragUp"/>
</Transition>
<ConstraintSet android:id="@+id/start">
<Constraint
android:id="@+id/ivTest"
android:layout_width="189dp"
android:layout_height="180dp"
android:layout_marginStart="8dp"
android:layout_marginTop="84dp"
android:layout_marginEnd="8dp"
android:cropToPadding="false"/>
</ConstraintSet>
<ConstraintSet android:id="@+id/end">
<Constraint
android:id="@+id/ivTest"
android:layout_width="84dp"
android:layout_height="80dp"
android:layout_marginStart="32dp"
android:layout_marginTop="32dp"
motion:srcCompat="@android:drawable/sym_def_app_icon" />
</ConstraintSet>
</MotionScene>`
最佳答案
找到了一种解决方案,可以在上下滑动时捕获 Bottom Sheet 位置:
@Override
public void onSlide(View bottomSheet, float slideOffset) {
View rootView = bottomSheet.getRootView();
float yBottomSheet = bottomSheet.getY();
}
就是这样
K
关于java - 结合使用底部布局和MotionLayout的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56138970/