Инициализация Surface View через привязку данных - PullRequest
0 голосов
/ 27 мая 2019

Я работаю с этой библиотекой сетевых графиков . У меня есть GraphSurfaceView в моем макете. Этот view отображает график, давая ему NetworkGraph объект, что-то вроде этого:

graphSurface.init(networkGraph)

Как связать networkGraph данные с graphSurface в архитектуре MVVM?

Я попробовал этот код ниже, и он не работал, я должен позвонить init после создания моего networkGraph:

BindingUtils.kt

@BindingAdapter("networkGraph")
@JvmStatic
fun setNetworkGraph(view: GraphSurfaceView, networkGraph: NetworkGraph) {
    view.init(networkGraph)
}

myActivity.kt

relationActivityBinding = DataBindingUtil.setContentView(this, getLayoutId())
graphSurface = relationActivityBinding.graphSurface

viewModel.kt

fun getNetworkGraph() = this.graphManager?.getGraphNetwork() // returns my networkGraph

activity.xml

<giwi.org.networkgraph.GraphSurfaceView
        android:id="@+id/graphSurface"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        app:networkGraph="@{viewModel.getNetworkGraph()}"/>
...