Как передать имя виджета функции в Tabris?
Могу ли я передать name
виджета в function
создавать вкладки?
Что-то вроде
let widgetName = new Tab({
...
Зачем?
- Мне нужно поместить много разных виджетов внутри каждого
tab
создано, то есть:.appendTo(tabCart)
Примечание: когда я создаю функцию createTextViews()
Я назначаю уникальный
id: txvName +(index)
(array
передается createTextView()
, затем forEach
петля)
и может обратиться к каждому TextView
по id, который отлично работает.
Пример кода: (работает на / детская площадка)
const {Tab, TabFolder, TextView, ui} = require('tabris')
let tabFolder = new TabFolder({
left: 0, top: 0, right: 0, bottom: 0
}).appendTo(ui.contentView)
createTab('tabCart', 'Cart')
createTab('tabPay', 'Pay')
createTab('tabStats', 'Stats')
function createTab (widgetName, title) {
// let widgetName = new Tab({ //fails, can't assign twice, wrong type anyways
let tab = new Tab({
title: title
}).appendTo(tabFolder)
new TextView({
centerX: 0, centerY: 0,
text: 'Content of Tab ' + title
}).appendTo(tab)
}
1 ответ
Решение
Спасибо Cookie Guru. Ваше предложение
return tab
это решение, на которое я надеялся.Вот небольшой пример того, как я буду использовать это в своем приложении:
const {Button, ImageView, Tab, TabFolder, TextView, ui} = require('tabris')
let tabFolder = new TabFolder({
left: 0, top: 0, right: 0, bottom: 0
}).appendTo(ui.contentView)
let tabCart = createTab('Cart', 'text-color')
new Button({
centerX: 0, top: 60,
text: 'Change textColor / remove tabPay'
}).on('select', () => {
tabFolder.find('.text-color').set('textColor', 'red')
tabPay.visible = false
tabItems.title = 'Items (1)'
}).appendTo(tabCart)
let tabItems = createTab('items', 'text-color')
new ImageView({
centerX: 0, top: 0,
image: 'https://raw.githubusercontent.com/eclipsesource/tabris-js/master/snippets/resources/target_200.png'
}).appendTo(tabItems)
let tabPay = createTab('Pay', 'text-color')
function createTab (title, tclass) {
let tab = new Tab({
title: title
}).appendTo(tabFolder)
new TextView({
centerX: 0, centerY: 0,
text: 'Content of Tab ' + title,
class: tclass
}).appendTo(tab)
return tab
}