findById()
находит только компоненты с атрибутом id
. Это в первую очередь для доступа к контейнерам внутри иерархии фрагментов. Внедренные компоненты (например, $componentName
) не обязательно имеют идентификаторы.
Например
UIFragment myUI = UIFragment.parseJSON("{flow: $myFunLabel, id:myFlow align: center}")
.set("myFunLabel", new Label("Hi World"));
Container cnt = myUI.findById('myFlow');
cnt
будет содержать контейнер потока.
В нотации JSON в настоящее время нет способа назначить идентификатор внедренному компоненту (например, $myFunLabel
). В нотации XML вы можете назначить идентификатор, используя:
<$myFunLabel id="myFunLabel"/>
Это упущение в основном потому, что, поскольку компонент внедрен, у вас уже есть доступ к нему до внедрения. Это сгенерированные контейнеры в иерархии, к которым у вас не будет простого доступа, кроме как через findById()
.