1

我的 MainActivity 中有一个图像视图。当展开我的底页时,MainActivity 中的图像视图应该改变它的位置和大小。有人可以带领我走上正确的道路吗?

我试过在按钮点击时设置动作,这很有效。我找不到通过展开底页来触发动作的方法。

我的最后一个想法是,获取底片的滑动偏移量并在运动中使用它......但是如何?

谢谢,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>`
4

1 回答 1

1

找到了一种在向上或向下滑动时捕获底片位置的解决方案:

   @Override
        public void onSlide(View bottomSheet, float slideOffset) {


            View rootView = bottomSheet.getRootView();
            float yBottomSheet = bottomSheet.getY();
         }

就是这样

GGK

于 2019-06-12T19:47:34.003 回答