Работает ли Android DataBinding с фреймворком Transitions/Scenes?

Работает ли библиотека Android DataBinding с Структура Transitions?

        Scene scene = Scene.getSceneForLayout(this, R.layout.creditcardentryview_scene2_expanded, this.getContext());
        TransitionManager.go(scene);
        scene2Binding = CreditcardentryviewScene2ExpandedBinding.bind(this);

Попытка кода выше выдает эту ошибку: view tag isn't correct on view:null


person ZakTaccardi    schedule 14.03.2016    source источник


Ответы (2)


Вы должны привязать макет до создания сцены:

CreditcardentryviewScene2ExpandedBinding binding = CreditcardentryviewScene2ExpandedBinding.inflate(getLayoutInflater(), this, false);
Scene scene = new Scene(this, binding.getRoot());
TransitionManager.go(scene);

bind(this) не работает, потому что this не является связанным представлением. this — это корень сцены! Итак, вы также можете сделать это:

Scene scene = Scene.getSceneForLayout(this, R.layout.creditcardentryview_scene2_expanded, this.getContext());
TransitionManager.go(scene);
scene2Binding = CreditcardentryviewScene2ExpandedBinding.bind(this.getChildAt(0));
person George Mount    schedule 16.03.2016

Вы должны раздуть вид самостоятельно с помощью DataBindingUtil.inflate()

и построить сцену с завышенным видом. https://developer.android.com/reference/android/transition/Scene.html#Scene(android.view.ViewGroup, android.view.ViewGroup)

Однако .bind(this) по-прежнему не работает, поэтому вам нужно вручную управлять сгенерированной привязкой.

person ZakTaccardi    schedule 15.03.2016