我可以将小部件的name
传递到function
来创建标签吗?
类似
let widgetName = new Tab({
... 为什么?
tab
内的小部件,即.appendTo(tabCart)
注意:当我创建函数createTextViews()
时,我分配了一个唯一的
id: txvName +(index)
(将array
传递到createTextView()
,然后传递forEach
循环)
,并且可以按ID寻址每个TextView
,效果很好。
示例代码:(可在/ playground上使用)
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)
}
答案 0 :(得分:0)
感谢Cookie大师。您对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
}