MotionLayout <KeyPosition>не может найти атрибут 'target' - PullRequest
0 голосов
/ 08 ноября 2019

Я использую ConstraintLayout 2.0 для создания анимации MotionLayout. Я обновил свой ConstraintLayout 2.0 с alpha-3 до beta-3, и теперь при компиляции он жалуется

src / main / res / xml / scene.xml: 11: AAPT: error: attribute target ((aka com.myapp: target) не найден.

Я ничего не изменил в моем файле сцены MotionLayout. Вот оскорбительные части:

  <MotionScene
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:motion="http://schemas.android.com/apk/res-auto"> 
...
     <Transition
        motion:constraintSetStart="@+id/start"
        motion:constraintSetEnd="@+id/end"
        motion:duration="1000">

        <KeyFrameSet>
            <KeyPosition
                motion:target="@+id/accent_background" <<-- Here
                motion:framePosition="80"
                motion:percentX="1"
                motion:percentY="1" />

Я посмотрел документацию MotionLayout, и для меня это не изменилось, но цель все еще определена так. Или я что-то упустил?

Я очистил кеш и попытался восстановить, но это не помогло.

1 Ответ

0 голосов
/ 08 ноября 2019

Решено.

Атрибут переименован в motionTarget. Таким образом, определение должно быть

<KeyFrameSet>
   <KeyPosition
       motion:motionTarget="@+id/accent_background"
       motion:framePosition="80"
       motion:percentX="1"
       motion:percentY="1" />

В блоге MotionLayout от Google (https://medium.com/google-developers/introduction-to-motionlayout-part-i-29208674b10d) имеют старые имена атрибутов, но в документации они обновлены (https://developer.android.com/reference/android/support/constraint/motion/MotionLayout#keyposition)

...