在Netflix的Android应用程序中,有一个WebView几乎覆盖了整个应用程序的区域。当您从左向右拖动一行时,它将仅滚动该行,并使用良好的惯性滚动进行滚动。如果上下拖动,它将上下滚动整个页面。
我设法在iOS上(在uiWebView和Safari中)复制了此功能,但在Android上却没有。在Android设备上,我所做的任何事情要么很难滚动,要么必须非常小心地垂直滚动才能通过触摸行之间的背景区域来开始。两者都 Not Acceptable 。显然,我不想在javascript中做滚动动画,因为那太慢了。
我知道Netflix是使用WebView来完成的,所以...他们使用的技巧是什么?
我已经尝试过使用css属性(对于div行):
overflow-y: hidden;
-webkit-overflow-scrolling-x: touch
无济于事。
最佳答案
如果您无法使css Android与您的特定WebView兼容,为什么不创建仅将请求的行输出到单独的WebView中的服务器端功能?
我将执行以下操作:
*查询Web服务器以确定有多少行。
*以编程方式添加Web服务器说有的行数。例如,如果服务器报告有5行,则创建5个WebView,每个WebView都有自己的URL参数(例如:第一个WebView将查询mydomain.com/wv?row=1
)。
*将每个WebView行放入HorizontalScrollView中,并将所有HorizontalScrollViews放入VerticalScrollView中。
*在更改URL时,转到整页的WebView,其中显示了单击的图块的详细信息。
*按下后,关闭整页WebView并重新加载行。
不是最干净的解决方案,但应该可以正常工作。
关于android - 如何在WebView中在Android上独立滚动行和列(la Netflix应用程序)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18156506/