2012-04-07 13 views
2

Androidブラウザは内部divをスクロールできません。つまり、SlickGridをデフォルト設定で使用することは不可能です。AndroidブラウザのSlickgrid(内部divスクロール)

幸いにも、SlickGridには内部スクロール可能なコンテンツを使用しないようにするためのautoHeight引数があり、アンドロイドで動作します。残念ながら、autoHeightを有効にすると、onViewportChangedは一度呼び出されてビューポート全体に広がり、再度呼び出されることはありません。したがって、すべてのデータを一度にロードしようとします。私は怠惰な読み込みとリモートのデータを表示していますので、一度に読み込んでみるとモバイルデバイスがクラッシュするので、それは無駄です。

もしautoHeightが有効になっていても、SlickGridがスマートに画面上の内容を知っていれば、私の問題は解決します。それがAndroidのデバイスだけでなく、デスクトップ上の多くの問題を解決するため、それがコアの機能であれば、私はそれが大好きです。

また、Androidの制限を回避するためにiScroll 4を使用してみました。残念ながら、iScrollを使用すると、onViewportChangedが発生しません。

おそらく、私自身のスクロールイベントを処理するために、onViewportChangedをディッチしたり変更したりして、これを解決する必要があります。私はそこに既存のソリューションがあるかどうか疑問に思っていた。

答えて

3

私はこの目的のためにmy own version of slickgridを書きました。また、実際にはスクロールが適切にサポートされているため、Google Chromeがデフォルトのブラウザになると、これは無関係になります。

0

モバイルデバイスをターゲットとするアプリやページにSlickGridを使用することはお勧めしません。グリッドは、モバイルデバイスを考慮して開発されたものではありません。特定のユースケースに対して最適化された完全に異なるアプローチが必要です。

+0

私は、autoHeightが設定されているときに、実際のスクロール可能なビューポート領域を見つけるために祖先を探し、何が表示されるべきかを計算するようSlickGridを修正しました。そうすれば、私はウィンドウをスクロール可能にすることができ、まだスリックグリッドの利点を得ることができます。私の修正はかなりハッキリしていて、スリックグリッドの中核的な前提のいくつかを混乱させるので、多くのものを変更する必要がありました。 –

+0

あなたは携帯電話のためのより良い選択肢のslickgridを知っていますか? –

+0

私はGrooveshark(SlickGridを使用している)が同様の修正を行ったと思います。このコードをより生産性の高いものにすることができれば、SlickGridにも大きな追加点となります。 – Tin

関連する問題