Titanium JS:如何阻止生成的列表视图出现在键盘下方

时间:2014-04-30 09:23:01

标签: titanium appcelerator titanium-alloy

我的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>

1 个答案:

答案 0 :(得分:1)

我只需实现相同的功能,但无法以跨平台的方式实现。

对于iOS,我使用了Ti.App.keyboardFrameChanged和Ti.App.keyboardVisible的组合。设置函数以调整列表视图的高度。

对于android我在模板的第一个/主视图上放了一个touchstart事件。触摸时,隐藏键盘。如果列表视图开始快速滚动到TOO,iOS并不总是想要触发此事件。 Android工作得很好。试图在listview上放置一个touchstart事件本身就失败了。