如何在WebView中独立滚动Android上的行和列(一个Netflix应用程序)?

rob*_*rob 9 android uiwebview android-webview

在Netflix的Android应用程序中,有一个WebView几乎涵盖了整个应用程序的区域.当您从左向右拖动一行时,它将仅滚动该行,并使用良好的惯性滚动来执行此操作.如果向上和向下拖动,它将向上和向下滚动整个页面.

android上的netflix应用程序

我已经成功地在iOS上复制了这个功能(在uiWebView以及Safari中),但在Android上却没有.在Android设备上,我所做的任何事情都要么滚动得很慢,要么你必须非常小心地垂直滚动才能开始触摸行之间的背景区域.两者都不可接受.显然,我不想在javascript中进行滚动动画,因为这太慢了.

我知道Netflix使用WebView做到了,所以....他们使用的技巧是什么?

我尝试过使用css属性(对于行div):

overflow-y: hidden;
-webkit-overflow-scrolling-x: touch
Run Code Online (Sandbox Code Playgroud)

无济于事.

agg*_*877 3

如果您无法获得与您的特定 WebView 兼容的 css Android,为什么不创建仅将请求的行输出到单独的 WebView 的服务器端功能呢?

我将执行以下操作:
* 查询 Web 服务器以确定有多少行。
* 以编程方式添加 Web 服务器所说的行数。例如,如果服务器报告有 5 行,则创建 5 个 WebView,每个 WebView 都有自己的 URL 参数(例如:第一个 WebView 将查询mydomain.com/wv?row=1)。
* 将每个WebView行放入一个Horizo​​ntalScrollView中,并将所有Horizo​​ntalScrollView放入一个VerticalScrollView中。
* URL 更改时,转到显示单击图块详细信息的全页 WebView。
* 按下后退时,关闭整页 WebView 并重新加载行。

不是最干净的解决方案,但应该可以正常工作。