В чем различия ч / б XxxBinding VS XxxBindingImpl?& Когда и как они созданы? - PullRequest
0 голосов
/ 15 мая 2019

Я пытаюсь понять привязку данных Android.

Я заметил, что у него есть проблема с обнаружением значений друг друга, и мне нужно invalidate/restart и clean project довольно часто. Итак, я подумал, что мне нужно найти решение и решить свое любопытство под капотом.

Я понял, что они оба создаются при сборке проекта (наверное, во время компиляции?), Если я установил для файла макета формат привязки данных примерно так:

<layout>
    <data>
    </data>

    <LinearLayout>
    </LinearLayout>
</layout>

А также, XxxBindingImpl наследует XxxBinding следующим образом:

public class ActivityMainBindingImpl extends ActivityMainBinding  {
    // TODO
}

Если я установил в макете значение method expression или listener expression, класс будет выглядеть следующим образом:

public class ActivityMainBindingImpl extends ActivityMainBinding implements com.example.myapp.generated.callback.OnClickListener.Listener 
{
    // TODO
}

И два вида классов расположены в com/example/myapp/databinding.

Я бы хотел знать роли обоих. И как / почему / когда они сделаны для чего. И различия ч / б две.

...