在名为. @private
_ 该组件在其类层次结构中的某个点进行扩展。NavBar
enbaledField
TabBar
NavBar
这是来自 Apache Flex github repo 的代码(包括在内只是为了您可以阅读 ASDOC 注释):
/**
* @private
* Storage for the enabled property.
*/
private var _enabledField:String = "enabled";
[Bindable("enabledFieldChanged")]
[Inspectable(category="Data")]
/**
* Name of the the field in the <code>dataProvider</code> object
* to use as the enabled label.
*
* @default "enabled"
*
* @langversion 3.0
* @playerversion Flash 11.1
* @playerversion AIR 3.4
* @productversion Flex 4.10
*/
public function get enabledField():String
{
return _enabledField;
}
所以理论上(我也没有安装 Flex),如果你的元素dataProvider
有一个名为的属性,enabled
你可以禁用TabBar
.
或者,如果您想使用 dataProvider 元素中的其他字段来指示按钮应该启用/禁用,您可以在enableField
属性上设置一个新值。
需要注意的是,ASDOC 说这首先包含在 Flex 4.10 中。但我认为这很奇怪,因为这是一个较旧的 MX 组件。但是,这个属性可能确实是在 Flex 4.10 中添加的。
如果这是真的,这仅在 Flex 4.10 中,那么您可以复制相应的代码位并按照@zeus 的建议自行实现。特别要注意发生魔术createNavChildren()
的类中的私有方法:NavBar
//Check for enabled field and assign it to the individual button if it exists.
if (_enabledField != "" && item.hasOwnProperty(_enabledField) == true)
{
navItem.enabled = Boolean(item[_enabledField]);
}
else
{
navItem.enabled = enabled;
}
这是NavBar
github 存储库中包含上述所有代码的类的链接。