我想尝试新的MotionLayot。 但是我无法加载MotionScreen。
我已将此依赖项添加到gradle中:
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support.constraint:constraint-layout:2.0.0-alpha1'
implementation 'com.android.support:design:27.1.1'
并能够在xml文件中声明运动布局:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.motion.MotionLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<ImageView
android:id="@+id/movingCircle"
android:src="@drawable/ic_circle"
android:layout_width="40dp"
android:layout_height="40dp" />
</android.support.constraint.motion.MotionLayout>
但是当我尝试在xml文件夹中添加新场景时,它不会弹出,也无法单击到源。
<?xml version="1.0" encoding="utf-8"?>
<MotionScene //does not popup as a hint. Seems like
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:motion="http://schemas.android.com/apk/res-auto">
</MotionScene>
我做错了什么?谢谢。
答案 0 :(得分:2)
检查您的gradle.properties
文件并删除此行
android.useAndroidX=true
android.enableJetifier=true
因为constraint-layout:2.0.0
仅适用于经典支持包
答案 1 :(得分:1)
我注意到类似的行为。当前,似乎自动补全和编译/错误检查不适用于MotionScenes。最终要经过大量的反复试验,但是我期望beta1版本会带来同样的结果。
不确定您是否要将其算作“答案”,但我只是将我想要的属性(约束等)写入布局文件中,然后将其复制过来。对于Transition
或OnClick
/ OnSwipe
之类的东西,您有点自己。
在进一步发展之前,我只是保持MotionLayout docs处于打开状态(并且由于处于beta1中,它们实际上做得很好)。
您还需要使用layoutDescription
属性将MotionScene添加到MotionLayout