我的Titanium Alloy应用程序中有一个窗口,里面有一个搜索栏。提交后,服务器返回一个JSON提要,然后用于在其下方的区域中构建列表视图。
我遇到的问题是列表视图占据了屏幕的整个空间,其中一部分显示在键盘下方。
我可以在列表视图上设置一个高度,但我觉得这不是平台无关的。 iPhone 5的高度可能与Android设备的高度不同。
如何确保生成的列表视图不会显示在键盘下方?是否有一种干净,多平台的方式来做到这一点?
<Alloy>
<Window layout="vertical">
<SearchBar id="searchBar" hintText="Search all shows" showCancel="true" />
<!-- List view added here will not
show underneath the search bar -->
</Window>
</Alloy>
答案 0 :(得分:1)
我只需实现相同的功能,但无法以跨平台的方式实现。
对于iOS,我使用了Ti.App.keyboardFrameChanged和Ti.App.keyboardVisible的组合。设置函数以调整列表视图的高度。
对于android我在模板的第一个/主视图上放了一个touchstart事件。触摸时,隐藏键盘。如果列表视图开始快速滚动到TOO,iOS并不总是想要触发此事件。 Android工作得很好。试图在listview上放置一个touchstart事件本身就失败了。