Как получить индивидуальную CreationPolicy on Canvas, являющуюся дочерним элементом TabNavigator?

Прочитав о Container creationPolicy (спасибо всем ссылкам в StackOverflow)

У меня проблема / вопрос:

У меня есть код TabNavigator и AS в начальной вкладке, чтобы ссылаться на компоненты второй вкладки (холст с несколькими дочерними элементами).
Но компоненты второй вкладки имеют значение null, пока эта вкладка не будет отрисована.

Согласно документации, когда я ее читал, я должен иметь возможность установить для параметра creationPolicy на второй вкладке / Canvas значение «all»; TabNavigator создаст экземпляры всех своих дочерних элементов верхнего уровня, даже с его многовидовым createPolicy = "auto"; и я надеялся, что при создании дочерней вкладки / холста, CreationPolicy = "all" этого single-view контейнера будет соблюдаться.

Но похоже, что это не так; если TabNavigator имеет createPolicy = "all", тогда заполняется вторая вкладка (но также и третья, четвертая, ...); но с "auto" вторая вкладка создается, но не заполняется, даже если its creationPolicy = "all".

Есть ли способ получить только выбранные вкладки для предварительного создания экземпляра?


person Jack Parker    schedule 19.10.2010    source источник


Ответы (1)


Есть ли способ получить только выбранные вкладки для предварительного создания экземпляра?

Нет! То, что вы видите, является ожидаемым поведением. Если основной дочерний элемент вкладки не создан, этот дочерний элемент не может создать все свои дочерние элементы.

Вы можете подумать о небольшом рефакторинге своего кода; поскольку один компонент обращается к данным в другом компоненте, который не является его дочерним, нарушает инкапсуляцию.

person JeffryHouser    schedule 20.10.2010
comment
Чтобы прояснить исходный пост: TabNavigator действительно создает первичный дочерний элемент вкладки (основной холст каждой вкладки); Проблема в том, что указанный Tab / Canvas не создает свои подкомпоненты, даже если его creationPolicy = all. - person Jack Parker; 20.10.2010