java - 结合使用底部布局和MotionLayout的最佳方法是什么

标签 java android bottom-sheet android-motionlayout

我的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/

相关文章:

java - 读取 NfcA MifareClassic NFC 标签

java - 配置 Jetty 集群共享 web Session

android textview填充父级

android - 在底部滚动上显示动画 View 翻译

android-layout - 键盘出现时 Bottom Sheet 对话框片段未向上滚动

java - JDK 中没有可用的安全随机数生成器

java - 在Java中解析CSV文件,如果第一个字段为空,则跳过下一行

java - 在主屏幕上获取应用程序小部件的位置?

Android MediaRecorder 在某些设备上不工作

android - 最初展开的 BottomSheetDialog 不起作用