Beagle v1.6 não é mais mantida ativamente. A versão documentada que você está visualizando pode conter funcionalidades depreciadas. Para obter as funcionalidades mais recentes, consulte a nossa última versão .
Para criar um widget customizado que utilize outros componentes do Beagle, basta implementar a interface SingleChildComponent
quando houver somente um componente filho, ou MultiChildComponent
para o widget que utilizar varios outros componentes.
SingleChildComponent
, ou MultiChildComponent
, nunca as duas ao mesmo tempo.Widgets customizados que renderizem um unico componente do Beagle devem implementar a interface SingleChildComponent
.
Com o widget customizado criado, adicione a interface SingleChildComponent
.
@RegisterWidget
class CustomChildWidget(
val name: String,
val phone: String,
val age: Int
): WidgetView(), SingleChildComponent {
override fun buildView(rootView: RootView): View {
TODO("Not yet implemented")
}
}
child
Após adicionar a interface SingleChildComponent
ao widget, sobrescreva a propriedade child
.
@RegisterWidget
class CustomChildWidget(
val name: String,
val phone: String,
val age: Int,
override val child: ServerDrivenComponent
): WidgetView(), SingleChildComponent {
override fun buildView(rootView: RootView): View {
TODO("Not yet implemented")
}
}
Para usar a view gerada a partir do componente child
, basta considera-lo como um ViewConvertable
e chamar o método buildView
.
@RegisterWidget
class CustomChildWidget(
val name: String,
val phone: String,
val age: Int,
override val child: ServerDrivenComponent
): WidgetView(), SingleChildComponent {
override fun buildView(rootView: RootView): View {
val builtChild = (child as ViewConvertable).buildView(rootView)
}
}
Widgets customizados que renderizem um ou mais componentes do Beagle devem implementar a interface MultiChildComponent
.
Com o widget customizado criado, adicione a interface MultiChildComponent
.
@RegisterWidget
class CustomChildWidget(
val name: String,
val phone: String,
val age: Int
): WidgetView(), MultiChildComponent {
override fun buildView(rootView: RootView): View {
TODO("Not yet implemented")
}
}
children
Após adicionar a interface MultiChildComponent
ao widget, sobrescreva a propriedade children
.
@RegisterWidget
class CustomChildWidget(
val name: String,
val phone: String,
val age: Int,
override val children: List<ServerDrivenComponent>
): WidgetView(), SingleChildComponent {
override fun buildView(rootView: RootView): View {
TODO("Not yet implemented")
}
}
Para usar a view gerada a partir do componente children
, basta considerar cada um como ViewConvertable
e chamar o método buildView
de cada.
@RegisterWidget
class CustomChildWidget(
val name: String,
val phone: String,
val age: Int,
override val children: List<ServerDrivenComponent>
): WidgetView(), SingleChildComponent {
override fun buildView(rootView: RootView): View {
children.forEach { child ->
val builtChild = (child as ViewConvertable).buildView(rootView)
}
}
}
Pronto! Seu componente agora utiliza outros componentes do Beagle!
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.