コミュニティ フォーラム用の Android アプリを開発しており、会話を表示する方法に苦労しています。1 ページは 30 の投稿で構成され、API ごとにバインドされています。投稿には、通常の書式設定 (強い、下線など) のテキストが含まれていますが、表、引用符、その他のブロック状の要素も含まれる場合があります。ほとんどの要素は入れ子にすることができます。たとえば、ブロックをタグ<table>
で囲むことができます。<strong>
各投稿は、静的レイアウトのヘッダーとフォーマットされていないテキストで構成されます。
私がこれまでに使用したアプローチは、会話全体を .html で HTML としてレンダリングすることWebView
です。CSS と Javascript を使用してカスタマイズでき、実装も簡単なので、これは非常に簡単です。ただし、この方法にはいくつかの欠点があります。
WebView
は非常に重いです。特に、アニメーション GIF や大きな画像が含まれている場合、高速な携帯電話でもスクロールやインタラクションがスムーズではなくなります。- アプリとのやり取りは多少制限されています。ビューがレンダリングされるときに特定の位置にスクロールするのははるかに困難です。ほとんどの場合、これは Javascript を介して処理する必要があり、レンダリング時間などがわからないためです。
- ボタン、ロング タッチ、リンク クリックなどはすべて Javascript で処理する必要がありますが、これは特にさまざまなタッチ イベントの場合、やや面倒です。
今、私はこれを処理するためのさまざまな方法を考えていました。オプションは次のとおりです。
- 動的ビュー階層を構築します。すべてのインライン タグは に含めることができ
Spans
、TextViews
残りはいくつかの特定のレイアウトになります。短所: 画面上に多数のビューが表示されます。階層を適切に生成するのは難しく、たとえば、いくつかのブロック ビューを<strong>
タグで囲むのは困難です。 - Gmailで使用されているハイブリッド ビュー。これには、距離などを計算するための多くのJavascriptも必要であり、表示中にレイアウトが変更されると柔軟性が低下します。
ListView
30WebViews
のA。WebView は非常に重いため、これも賢明ではない可能性があります。
これを解決する最善の方法は何ですか? 他の同様のアプリはこの問題をどのように解決していますか? Javascript のWebViews
信頼性と安定性を高める方法はありますか?