9

Netflix の Android アプリには、アプリのほぼ全体をカバーする WebView があります。行を左から右にドラッグすると、その行だけがスクロールされます。これは、優れた慣性スクロールを使用して行われます。上下にドラッグすると、ページ全体が上下にスクロールします。

アンドロイドのネットフリックスアプリ

この機能を iOS (uiWebView および Safari で) 複製することができましたが、Android では複製できませんでした。Android デバイスでは、スクロールが非常に遅くなるか、行間の背景領域に触れることから開始するために垂直スクロールに非常に注意する必要があります。どちらも受け入れられません。明らかに、JavaScript でスクロール アニメーションを実行したくありません。遅すぎるためです。

Netflix が WebView を使用してそれを行っていることは知っていますが、彼らが使用しているトリックは何ですか?

css プロパティを使用してみました (行 div 用):

overflow-y: hidden;
-webkit-overflow-scrolling-x: touch

無駄に。

4

3 に答える 3

3

特定の WebView と互換性のある css Android を取得できない場合は、要求された行のみを別の WebView に出力するサーバー側の機能を作成してみませんか?

私なら次のようにします。
* Web サーバーにクエリを実行して、行数を確認します。
* Web サーバーが持っていると言う行数をプログラムで追加します。たとえば、サーバーが 5 つの行があると報告した場合、5 つの WebView を作成し、それぞれに独自の URL パラメーターを指定します (例: 最初の WebView はクエリを実行しますmydomain.com/wv?row=1)。
* WebView の各行を Horizo​​ntalScrollView に配置し、すべての Horizo​​ntalScrollViews を VerticalScrollView に配置します。
* URL の変更時に、クリックしたタイルの詳細を表示するフルページの WebView に移動します。
* バック プレスで、フル ページの WebView を閉じて、行をリロードします。

最もクリーンなソリューションではありませんが、正常に動作するはずです。

于 2013-08-20T08:08:45.867 に答える
0

Netflix は、カスタム ジェスチャ検出を使用して、スクロールが垂直よりも水平であるか、水平よりも垂直であるかを確認し、スクロールの距離に基づいて、Web ビューを水平または垂直にスクロールすることができました。

于 2013-08-21T15:34:37.587 に答える