android - Android MotionLayout 中的多个转换问题
问题描述
我正在玩 Android 中的 MotionLayout。我正在使用 alpha 2 版本。
'com.android.support.constraint:constraint-layout:2.0.0-alpha2'
我想对两个不同的按钮单击做出反应并为每个按钮触发一个动画。我目前的方法是在每个Transitions
中MotionScene
设置两个触发器。OnClick
问题是似乎只找到了第一个转换。对于第二个,什么都没有发生。我做错了什么还是你可以只设置一个过渡MotionScene
?如果是这种情况,是否有不同的解决方案?
这是我的动态场景的重要部分
<MotionScene xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:motion="http://schemas.android.com/apk/res-auto">
<Transition
motion:constraintSetStart="@id/startHome"
motion:constraintSetEnd="@id/endHome"
motion:duration="300">
<OnClick
motion:mode="toggle"
motion:target="@+id/imageView_bottom_home" />
</Transition>
<Transition
motion:constraintSetStart="@id/startSearch"
motion:constraintSetEnd="@id/endSearch"
motion:duration="300">
<OnClick
motion:mode="toggle"
motion:target="@+id/imageView_bottom_search" />
</Transition>
<ConstraintSet android:id="@+id/startSearch">
<Constraint
android:id="@id/imageView_bottom_search"
...startConstraints... />
</ConstraintSet>
<ConstraintSet android:id="@+id/endSearch">
<Constraint
android:id="@id/imageView_bottom_search"
...endConstraints... />
</ConstraintSet>
<ConstraintSet android:id="@+id/startHome">
<Constraint
android:id="@id/imageView_bottom_home"
...startConstraints... />
</ConstraintSet>
<ConstraintSet android:id="@+id/endHome">
<Constraint
android:id="@id/imageView_bottom_home"
...endConstraints... />
</ConstraintSet>
任何帮助表示赞赏。
此致
解决方案
我有同样的问题。我找到的解决方案是选择哪一个转换:
(在Java代码中)...
MotionLayout motionConteiner = findViewById(R.id.motion_container);
button1.setOnClickListener((v) -> {
motionConteiner.setTransition(R.id.start1, R.id.end1);
motionConteiner.transitionToEnd();//
});
button2.setOnClickListener((v) -> {
motionConteiner.setTransition(R.id.start2, R.id.end2);
motionConteiner.transitionToEnd();//
});
推荐阅读
- c++ - std::make_unique 可以将函数的输出作为参数吗?
- android - Unity GoogleVR1.2 Cardboard 在三星上颠倒显示
- typescript - TypeScript 中的 Cheerio `this` 对象使“TS2683:'this' 隐式具有类型'any',因为它没有类型注释。”
- javascript - 有条件地在 3 个元素后添加一行:ReactJS
- android - 交叉编译 PALSIADE for android
- c++ - 更改超出范围的变量引用
- typo3 - 为图片插入添加 data-src 标签
- php - 带有参数的magento 2加载类
- pgadmin-4 - 是否可以使用 Pgadmin4 绘制 ER 图
- ruby-on-rails - 如何使用 Axlsx:NumFmt?