在Titanium JS中,当设置rightNavButtons时,这些按钮仅适用于前4个点击

时间:2014-10-25 18:55:40

标签: titanium titanium-mobile appcelerator titanium-alloy appcelerator-mobile

在我的iOS应用中,我使用了窗口的rightNavButtons属性在右上角添加了两个按钮。

但是,这些按钮上的点击事件仅适用于前4个点击,当您点击它们时没有任何反应。到底是怎么回事?这可能是Titanium的错误吗?

这是我的代码:

Titanium SDK版本:3.4.0.v20140916181713

合金版:1.5.1

控制器 - index.js:

var addButton = Ti.UI.createButton({ systemButton: Ti.UI.iPhone.SystemButton.ADD });
var searchButton = Ti.UI.createButton({ systemButton: Ti.UI.iPhone.SystemButton.SEARCH });

addButton.addEventListener("click", function () {
    console.log("ADD was clicked!");
});

searchButton.addEventListener("click", function () {
    console.log("SEARCH was clicked!");
});

$.win.setRightNavButtons([searchButton, addButton]);

$.index.open();

查看 - index.xml

<Alloy>
    <TabGroup>
        <Tab title="Tab 1" icon="KS_nav_ui.png">
            <Window id="win" title="Tab 1">
                <Label>I am Window 1</Label>
            </Window>
        </Tab>
        <Tab title="Tab 2" icon="KS_nav_views.png">
            <Window title="Tab 2">
                <Label>I am Window 2</Label>
            </Window>
        </Tab>
    </TabGroup>
</Alloy>

3 个答案:

答案 0 :(得分:2)

找到了解决方法!

我避免使用&lt; RightNavButton s &gt;,它可以包含多个视图。

相反,我使用&lt; RightNavButton&gt;它只能包含一个子视图。

要添加两个按钮到我的导航栏,我嵌套了视图容器中的按钮(&lt; RightNavButton&gt;的单个子项。

<RightNavButton>
    <View>
        <Button class="i i-heart nav-button" id="favorite" onClick="toggleFavorite" right="0" />
        <Button class="i i-share nav-button" id="share" right="32" />
    </View>
</RightNavButton>

不再有问题了。 &lt; Button&gt;的onClick事件触发View容器中的子项。

答案 1 :(得分:1)

当我尝试执行你的代码时,3.4.0.GA / Alloy 1.5.0和iOS8 Simulator上没有为我调用事件监听器。

但是,当我将RightNavButton放在XML中时,它工作正常,每次点击它时都会调用事件监听器。对我来说看起来像个错误......

<Tab title="Tab 1" icon="KS_nav_ui.png">
    <Window id="win" title="Tab 1">
       <RightNavButton platform=ios>
         <Button systemButton="Ti.UI.iPhone.SystemButton.ADD" onClick="closeWindow" />
       </RightNavButton>
       <Label>I am Window 1</Label>
    </Window>
</Tab>

答案 2 :(得分:1)

测试了这段代码,它应该适合你

  <Tab title="Tab 1" icon="KS_nav_ui.png">
        <Window id="win" title="Tab 1">
           <RightNavButtons platform=ios>
             <Button systemButton="Ti.UI.iPhone.SystemButton.ADD" onClick="addHandler" />
             <Button systemButton="Ti.UI.iPhone.SystemButton.SEARCH" onClick="searchHandler" />
           </RightNavButtons>
           <Label>I am Window 1</Label>
        </Window>
    </Tab>