这是一个移动应用程序,在 iPhone 模拟器上运行,使用 SDK v 3.0.2 GA 和 Alloy 框架。
我有一个窗口,它有一个表视图,该表视图顶部有一个自动完成的搜索栏。当自动完成开始触发时,它会在搜索框下方显示一个带有结果的表格视图,允许用户从结果中进行选择。
这一切都很好,除了在搜索视图中包含 TableView 会导致原始窗口上的 TableView 消失。
代码如下:
myPlaces.xml
<Alloy>
<Window id="myDrawersWin">
<RightNavButton>
<Button id="showMyDrawers" title="Show Drawers" />
</RightNavButton>
<Require src="findPlace" id="findPlace"/>
<TableView id="placeListTable"/>
</Window>
</Alloy>
查找位置.xml
<Alloy>
<View id="searchContainer">
<TextField id="searchInput" hintText="Find a place..." />
</View>
<TableView id="searchResultsTable"/>
</Alloy>
findPlace.js
$.searchInput.addEventListener("change", function(){
if ($.searchInput.value.length > 2 && $.searchInput.value != "Find a place...") {
// do the search and get a response successfully
_.each(returnedVenues, function(venue){
tblData.push(Alloy.createController("venueSearchListItem", venue).getView());
});
$.searchResultsTable.setData(tblData);
$.searchResultsTable.visible = true;
},
onerror: function(e){
console.log("error");
console.log(e);
}
});
// invoke the HTTP client here
}
else {
$.searchResultsTable.visible = false;
}
});
查找位置.xml
"#searchContainer":{
width: "100%",
height: 50,
backgroundColor: "#B8D0DB",
top: 0
}
"#searchInput":{
width: "80%",
height: 30,
backgroundColor: "#FFFFFF"
}
"#searchResultsTable":{
width: "80%",
visible: false
}
如果我在 中取出 TableView findPlace.xml
,则窗口(placeListTable)上的原始 TableView 显示得很好。如果我重新添加它,它就会消失。此外,如果我将 TableView 移动到它里面,<View id="searchContainer">
它会显示出来(但显然,由于高度限制,不适合searchContainer
)。
有任何想法吗?这是一个错误,还是我在这里做一些愚蠢的事情?
谢谢你的帮助。
贾斯汀