3

我正进入(状态

“链接文件资源失败”

“错误:找不到属性类型(又名 com.testapp.client:type)”

使用新的 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 变体。

任何帮助表示赞赏:)

4

3 回答 3

13

供你参考,target

已更改为motionTarget

KeyPositionKeyAttribute

于 2019-05-12T00:06:27.410 回答
12

没关系 :)

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" />
于 2018-09-29T17:12:23.407 回答
1

更新:

正如@MichałK 在评论中提到的那样

android:interpolator已更改为motion:motionInterpolator

在以后的版本中

参考:https ://developer.android.com/reference/android/support/constraint/motion/MotionLayout.html#transition


旧帖:

除了@Momen 提到的

<Transition ...>标签中motion:interpolator

已更改为android:interpolator

(命名空间从 更改motionandroid

例子:

<Transition ...
    android:interpolator="@android:anim/accelerate_interpolator">
于 2019-07-18T04:53:52.933 回答