8

チャンネルのリストのテレビガイドを表示するアプリがあります。私のUIは、テレビ番組を表示する幅の異なる多くのカスタムビューから作られています.これらのカスタムビューはすべて、スクロールビューに追加される水平スクロールビューに追加されるため、ビューは左右と上部の2次元でスクロールできます.下。多くのビューを追加して非常に遅くなり始めるまで、すべて正常に機能します。したがって、リストビューがスクロールビューで行うようにビューをリサイクルする方法が必要です。おそらく、これを行うカスタムメイドのスクロールビューがあるか、誰かがこれを行う方法を考えています。スクロールビューがグリッドビューやリストビューのようなアダプターによってバックアップされていないのは奇妙です。

これが私のUIの外観です

4

2 に答える 2

7

私は自分のビューがあなたのものとして接続されていないだけで似たようなことをしましたが、それらはすべて異なるサイズでした.

最初に、領域全体 (表示画面だけでなく) に決定的な数または動的な数のカスタム ビューがあるかどうかを定義する必要があります。

決定的な数のビューとその位置がある場合は、Rect のリストを使用して位置マップを作成する必要があります (Rect には、xy ポイントが属するかどうかに関係なく適切な機能があります)。次に、画面に表示されるビューの最大数を定義します。一定の読み込みなしでこれを機能させるには、最大の可視ビュー + オブジェクト全体の境界線ビューの少なくとも 1 行が必要です。このすべての後、画面の境界+いくらかのオーバーヘッドにあるビューをロードする独自のポジショニングシステムを簡単に作成する必要があります(これの目的は、ユーザーが少なくともある程度スクロールしている間にスムーズに移行できるようにすることです)。アンロードすると同時にいくつかをロードし(再利用を読んだり、オブジェクトを破棄せずに onScroll イベントを作成したり)、必要に応じてそれらを配置する必要があります。

また、どのビューを表示するかを決定したい場合は、リストを調べて、Views Rect が読み込まれる領域の Rect と交差するかどうかを尋ねます。

この画像が少しでもお役に立てば幸いです

Example

少し混乱して実装が難しいように聞こえることは承知していますが、簡単な質問をしていませんでした:)これがお役に立てば幸いです。

于 2013-05-15T01:31:52.697 に答える
1

アダプターによってバックアップされ、ビューをリサイクルする ScrollView は、いくつかの追加のオプション機能を備えた ListView です。

おそらく、アダプターによってサポートされる Horizo​​ntalScrollView が必要ですか? Horizo​​ntalListView を検索すると、いくつかの結果が得られます (例: https://github.com/dinocore1/DevsmartLib-Android )

于 2013-05-13T10:23:54.770 に答える