是否可以隐藏列表中特定项目的按钮?假设我有一个带有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);
它将隐藏所有项目的按钮。但是我希望它隐藏在那个特定的项目中。有办法吗?
请帮忙。谢谢。
答案 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();
}
所以你可以看到结果。