使用 Motion Layout KeyPosition 时链接文件资源失败
Failed linking file resources when using Motion Layout KeyPosition
我得到
"Failed linking file resources"
和
"error: attribute type (aka com.testapp.client:type) not found"
使用新的 MotionLayout 时,特别是在场景文件中添加 KeyPosition 元素时。
我的场景文件供参考:
<?xml version="1.0" encoding="utf-8"?>
<MotionScene xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<Transition
app:constraintSetEnd="@id/collapsed"
app:constraintSetStart="@id/expanded">
<OnSwipe
app:dragDirection="dragUp"
app:touchAnchorId="@id/recyclerview"
app:touchAnchorSide="top" />
<KeyFrameSet>
<KeyAttribute
app:framePosition="60"
app:target="@id/toolbar_image">
<CustomAttribute
app:attributeName="imageAlpha"
app:customIntegerValue="255" />
</KeyAttribute>
<KeyAttribute
app:framePosition="90"
app:target="@id/toolbar_image">
<CustomAttribute
app:attributeName="imageAlpha"
app:customIntegerValue="0" />
</KeyAttribute>
<KeyPosition
app:type="pathRelative"
app:framePosition="50"
app:target="@id/title"
app:percentX="0.9" />
</KeyFrameSet>
</Transition>
<ConstraintSet android:id="@+id/expanded">
<Constraint
android:id="@id/toolbar_image"
android:layout_height="200dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Constraint
android:id="@id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginBottom="24dp"
android:scaleX="1.0"
android:scaleY="1.0"
app:layout_constraintBottom_toBottomOf="@id/toolbar_image"
app:layout_constraintStart_toStartOf="parent" />
</ConstraintSet>
<ConstraintSet android:id="@+id/collapsed">
<Constraint
android:id="@id/toolbar_image"
android:layout_height="?attr/actionBarSize"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Constraint
android:id="@id/title"
android:layout_marginStart="20dp"
android:layout_marginBottom="0dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleX="0.625"
android:scaleY="0.625"
app:layout_constraintBottom_toBottomOf="@id/toolbar_image"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/toolbar_image" />
</ConstraintSet>
我正在使用 Android Studio 3.2 稳定版,以及支持库和约束布局的 AndroidX 变体。
感谢任何帮助:)
没关系:)
KeyPosition 元素的属性 "type" 在 Alpha 2 中已更改为 "keyPositionType"
如果有人遇到同样的问题,这里有一个片段:
<KeyPosition
app:keyPositionType="pathRelative"
app:framePosition="50"
app:target="@id/title"
app:percentX="0.9" />
而不是这个:
<KeyPosition
app:type="pathRelative"
app:framePosition="50"
app:target="@id/title"
app:percentX="0.9" />
供您参考,target
已更改为motionTarget
在 KeyPosition
和 KeyAttribute
更新:
正如@MichałK 在评论中提到的那样
android:interpolator
已更改为 motion:motionInterpolator
在以后的版本中
旧Post:
除了@Momen提到的
在 <Transition ...>
标签中 motion:interpolator
已更改为 android:interpolator
(命名空间从 motion
更改为 android
)
示例:
<Transition ...
android:interpolator="@android:anim/accelerate_interpolator">
我得到
"Failed linking file resources"
和
"error: attribute type (aka com.testapp.client:type) not found"
使用新的 MotionLayout 时,特别是在场景文件中添加 KeyPosition 元素时。
我的场景文件供参考:
<?xml version="1.0" encoding="utf-8"?>
<MotionScene xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<Transition
app:constraintSetEnd="@id/collapsed"
app:constraintSetStart="@id/expanded">
<OnSwipe
app:dragDirection="dragUp"
app:touchAnchorId="@id/recyclerview"
app:touchAnchorSide="top" />
<KeyFrameSet>
<KeyAttribute
app:framePosition="60"
app:target="@id/toolbar_image">
<CustomAttribute
app:attributeName="imageAlpha"
app:customIntegerValue="255" />
</KeyAttribute>
<KeyAttribute
app:framePosition="90"
app:target="@id/toolbar_image">
<CustomAttribute
app:attributeName="imageAlpha"
app:customIntegerValue="0" />
</KeyAttribute>
<KeyPosition
app:type="pathRelative"
app:framePosition="50"
app:target="@id/title"
app:percentX="0.9" />
</KeyFrameSet>
</Transition>
<ConstraintSet android:id="@+id/expanded">
<Constraint
android:id="@id/toolbar_image"
android:layout_height="200dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Constraint
android:id="@id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginBottom="24dp"
android:scaleX="1.0"
android:scaleY="1.0"
app:layout_constraintBottom_toBottomOf="@id/toolbar_image"
app:layout_constraintStart_toStartOf="parent" />
</ConstraintSet>
<ConstraintSet android:id="@+id/collapsed">
<Constraint
android:id="@id/toolbar_image"
android:layout_height="?attr/actionBarSize"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Constraint
android:id="@id/title"
android:layout_marginStart="20dp"
android:layout_marginBottom="0dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleX="0.625"
android:scaleY="0.625"
app:layout_constraintBottom_toBottomOf="@id/toolbar_image"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/toolbar_image" />
</ConstraintSet>
我正在使用 Android Studio 3.2 稳定版,以及支持库和约束布局的 AndroidX 变体。
感谢任何帮助:)
没关系:)
KeyPosition 元素的属性 "type" 在 Alpha 2 中已更改为 "keyPositionType"
如果有人遇到同样的问题,这里有一个片段:
<KeyPosition
app:keyPositionType="pathRelative"
app:framePosition="50"
app:target="@id/title"
app:percentX="0.9" />
而不是这个:
<KeyPosition
app:type="pathRelative"
app:framePosition="50"
app:target="@id/title"
app:percentX="0.9" />
供您参考,target
已更改为motionTarget
在 KeyPosition
和 KeyAttribute
更新:
正如@MichałK 在评论中提到的那样
android:interpolator
已更改为 motion:motionInterpolator
在以后的版本中
旧Post:
除了@Momen提到的
在 <Transition ...>
标签中 motion:interpolator
已更改为 android:interpolator
(命名空间从 motion
更改为 android
)
示例:
<Transition ...
android:interpolator="@android:anim/accelerate_interpolator">