SAPUI5-单击时在列表项中隐藏按钮

时间:2014-08-26 08:38:11

标签: sapui5

是否可以隐藏列表中特定项目的按钮?假设我有一个带有swipedContent的列表,其中包含一个id为" actionButton"的按钮。我想隐藏" actionButton"当它被点击时。

代码:

new sap.m.List("list", {

backgroundDesign : "Transparent",
        mode : sap.ui.Device.system.phone ? sap.m.ListMode.None
                : sap.m.ListMode.SingleSelectMaster,
        itemPress : [ oController.handleListSelect, oController ],
        swipeContent : new sap.m.Button({
            id: "actionButton",
            text : "Actions",
            type : "Accept",
            press : [ oController.onPress, oController ]
            })
    })

编辑:

onPress: function(e){

    var list = this.getView().byId("list");
    var swipedItem = list.getSwipedItem();
    //Below code destroys swipeContent from ALL THE ITEMS in the list which I don't want
    list.destroySwipeContent();
    //And this doesnot work
    swipedItem.destroySwipeContent();

}

如果我使用:

sap.ui.getCore().byId("actionButton").setVisible(false);

它将隐藏所有项目的按钮。但是我希望它隐藏在那个特定的项目中。有办法吗?

请帮忙。谢谢。

1 个答案:

答案 0 :(得分:0)

根据您所写的内容,我了解您希望操作按钮在您按下后消失。这已经自动发生了 - 请参阅Explored example for the Sample: List - Swipe(您可以将Chrome设置为模拟手机,以便您可以测试滑动;我还建议您动态修改示例List.controller.js以便它不会删除该项目(此示例的默认操作):

handleReject: function (evt) {
    var oList = evt.getSource().getParent();
    // Next line commented out on purpose, for testing
    // oList.removeAggregation("items", oList.getSwipedItem());
    oList.swipeOut();
}

所以你可以看到结果。