如何使用 Appcelerator/Titanium 动态显示标签?
How to show Tabs dynamically with Appcelerator/Titanium?
我制作了一个基于选项卡的应用程序,并希望 show/hide 根据用户是否登录来选择登录或用户配置文件选项卡。我怎样才能做到这一点?我尝试设置选项卡的可见 属性,但这不起作用,两个选项卡都可见。
如果有条件地设置两个选项卡效果不佳,有没有办法动态更改 src 文件的加载?我不想将配置文件和 login/register 函数放在一个文件中。
index.xml:
<Alloy>
<TabGroup id="root">
<Tab id="profile" visible="false" title="Profile" icon="KS_nav_views.png">
<Require type="view" src="profile" />
</Tab>
<Tab id="login" title="Login" icon="KS_nav_views.png">
<Require type="view" src="modalLogin" />
</TabGroup>
</Alloy>
index.js ()
// open TabGroup
$.root.open();
var userStatus = "loggedin";
showProfile(userStatus);
function showProfile(user){
if (user == "loggedin") {
$.login.visible = false;
$.profile.visible = true;
console.log("user is logged in");
} else {
$.profile.visible = false;
$.login.visible = true;
console.log("user is not logged in");
}
}
根据 Titanium.UI.TabGroup 文档:
...Tabs cannot be removed from the tab group once added, and tabs cannot
be reordered.
根据我的经验,TabGroup
组件 确实 受限,并且大部分被开发人员定制的组件所取代。也许你也是这样!
至于动态 Require
源文件,我建议 creating/removing 根据您的需要以编程方式查看元素,而不是将其插入 XML。再一次,我在动态改变视图元素方面的经验并不是最好的:当我尝试这样做时会出现疯狂的错误。
所以,我更喜欢完全销毁一个元素并插入另一个元素'by hand'。
但是,嘿,试试吧!您可能会遇到更好的解决方案 =)
仅供参考,这里是 Require
标签上的 the iffy documentation。
我制作了一个基于选项卡的应用程序,并希望 show/hide 根据用户是否登录来选择登录或用户配置文件选项卡。我怎样才能做到这一点?我尝试设置选项卡的可见 属性,但这不起作用,两个选项卡都可见。
如果有条件地设置两个选项卡效果不佳,有没有办法动态更改 src 文件的加载?我不想将配置文件和 login/register 函数放在一个文件中。
index.xml:
<Alloy>
<TabGroup id="root">
<Tab id="profile" visible="false" title="Profile" icon="KS_nav_views.png">
<Require type="view" src="profile" />
</Tab>
<Tab id="login" title="Login" icon="KS_nav_views.png">
<Require type="view" src="modalLogin" />
</TabGroup>
</Alloy>
index.js ()
// open TabGroup
$.root.open();
var userStatus = "loggedin";
showProfile(userStatus);
function showProfile(user){
if (user == "loggedin") {
$.login.visible = false;
$.profile.visible = true;
console.log("user is logged in");
} else {
$.profile.visible = false;
$.login.visible = true;
console.log("user is not logged in");
}
}
根据 Titanium.UI.TabGroup 文档:
...Tabs cannot be removed from the tab group once added, and tabs cannot be reordered.
根据我的经验,TabGroup
组件 确实 受限,并且大部分被开发人员定制的组件所取代。也许你也是这样!
至于动态 Require
源文件,我建议 creating/removing 根据您的需要以编程方式查看元素,而不是将其插入 XML。再一次,我在动态改变视图元素方面的经验并不是最好的:当我尝试这样做时会出现疯狂的错误。
所以,我更喜欢完全销毁一个元素并插入另一个元素'by hand'。
但是,嘿,试试吧!您可能会遇到更好的解决方案 =)
仅供参考,这里是 Require
标签上的 the iffy documentation。