【问题标题】:How to set title for the window of a tab in alloy titanium如何在合金钛中设置选项卡窗口的标题
【发布时间】:2013-10-17 15:22:39
【问题描述】:

在视图中:

我有这样的看法:

<Alloy>
<TabGroup id="tab1">
    <Tab id="findtab">
        <Window id="window1"></Window>
    </Tab>
    <Tab id="tab2">
        <Window id='window2'></Window>
    </Tab>
 </TabGroup>
</Alloy>

在控制器中:

如何设置window1的标题?

【问题讨论】:

    标签: titanium titanium-mobile titanium-alloy


    【解决方案1】:

    用途:

    $.window1.title="my title"
    

    【讨论】:

    • 因为我在标签组的 2 个标签中有 2 个窗口。我已经测试了上面的 2 个答案,但它们对我不起作用。
    • 我在我的一个应用程序中拥有相同的视图,并且 $..title = "some title" 工作正常。你的情况到底发生了什么?你看到窗口标题栏了吗?如果在 XML 中使用 会发生什么?
    • 我在android模拟器上测试过,从控制器设置时是空白的,但我从视图中设置,它确实显示为特定标题。
    • 好的,我在 iOS 上测试过,抱歉,我不能说它在 android 上是否有所不同。如果有机会,也可以在 iOS 上进行测试,看看它是否可以在那里工作。
    • 感谢您的热情帮助 :)
    【解决方案2】:

    我相信您的问题是在您尝试设置标题时窗口尚未完全创建。

    我根据选项卡组的焦点事件(实际上从选项卡中冒出)采取行动,并根据选项卡分配 ActionBar 标题。

    对于 TabGroups 中的 ActionBar,我执行以下操作:

    查看:

    <Alloy>
      <TabGroup id="tabGroup1">
        <Tab id="tab1">
          <Window id="window1"></Window>
        </Tab>
        <Tab id="tab2">
          <Window id='window2'></Window>
        </Tab>
      </TabGroup>
    </Alloy>
    

    控制器:

    /**
     * Listen to focus on the tabgroup and pass the title to the ActionBar
     */
    $.tabGroup1.addEventListener('focus', function(){
    
     if( OS_ANDROID && Ti.Platform.Android.API_LEVEL >= 11 ) {
    
        var tabGroup = $.tabGroup1,
            activity = tabGroup.getActivity(),
            actionBar;
    
        if(!activity){
            Ti.API.error('No activity created for mainTabGroup');
        } else {
            actionBar = activity.actionBar;
    
            if(!actionBar){
                Ti.API.error('No ActionBar created for mainTabGroup activity');
            } else {
                actionBar.setTitle(tabGroup.activeTab.title);
            }
        }
    
     }
    });
    
    $.mainTabGroup.open();
    

    通过使用 TabGroup 的焦点事件,您可以确保组件在需要修改时可用。

    【讨论】:

      【解决方案3】:

      给你

      $.window1.title='MY custom title';
      

      谢谢

      【讨论】:

      • 感谢您的回答,但它对我不起作用。我在android模拟器上调试过。编译器传递该代码行,但未设置窗口标题。我也尝试使用 $.window1.setTitle("Title here");但它还没有设置。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-11
      • 1970-01-01
      相关资源
      最近更新 更多