問題タブ [staggeredgridlayout]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1780 参照

android - StaggeredGrid RecyclerView が表示されているアイテムだけでなく、すべてのアイテムをレイアウトするのはなぜですか?

画像付きの 370 個のアイテムを含むスタガード グリッドがあります。

メモリに注意するためにアイテムがすばやくリサイクルされるようにしたいのですが、ViewHolder が作成され、アダプター内のすべてのアイテムにバインドされ、子が表示されているかどうかに注意を払いません。

私は次のことを試しました

ロギングは、onCreateViewHolder と onBindViewHolder がそれぞれ 185 回呼び出されることを示しています。次に、onViewRecycled が 185 回呼び出されてから、370 回に達するまで onCreateViewHolder の呼び出しが再開されます。

これは私の理解の問題かもしれませんが、RecyclerView は、表示されているビューのみをバインドするか、20 ビューのみ、またはプール内に 20 ビュー + 画面に収まる数を尊重する必要があると思います。StaggeredGridLayoutManager でこれを実現するにはどうすればよいですか?

スクロールの変更をリッスンし、findFirstCompletelyVisibleItemPositions と findLastCompletelyVisibleItemPositions を使用すると、画面に収まる 6 項目だけでなく、アダプター内のすべての項目にまたがります。

私のアダプターコード

マイ アクティビティのレイアウト構造

フラグメント レイアウト

0 投票する
0 に答える
684 参照

android - コンテンツの幅に基づいてずらして表示を管理し、垂直方向にスクロールできますか?

テキスト ビューを含むビュー タグを作成するためにスタッガード ビューを使用していますが、コンテンツを管理する際に問題に直面しています。

ここに画像の説明を入力

そして、ずらした垂直マネージャーを使用すると、高さに基づいてコンテンツが管理されます。 これらのタグを幅に基づいて管理するようにずらしたビューをカスタマイズできますが、スクロール可能は垂直になりますか?

これを解決するのを手伝ってください、私は感謝します。

0 投票する
0 に答える
235 参照

android - Android、ネストされたリストをランダムな幅と高さで表示するアイデアはありますか?

A{a1, a2, a3...aN}, B{B1, BM}, .... O{O1, o2, ... OP} のようなネストされたリストがあります。リストにはランダムな数のメンバーが含まれています。各メンバーもランダムなメンバーのリストです。これは、下の画像のように表示されます。ご覧のとおり、外側のセルの幅と高さは固定されていません。ネストされたrecyclerviewを使用すれば可能かもしれません。StaggeredGridLayoutManager に少し似ています。しかし、私が理解したように、StaggeredGridLayoutManager は幅または高さのいずれかを固定する必要があります。この種の UI デザインを実装する方法について何か提案はありますか? 表示したいのはこれ

これは、StaggeredGridLayoutManager を使用すると表示されるものです

これは外部の List Adapter /************ class GroupAdapter extends RecyclerView.Adapter{

そして、これが内部リスト アダプター クラス CandidateAdapter extends RecyclerView.Adapter{ ArrayList candis; です。

StaggeredGridLayoutManager はこのように作られています。

0 投票する
1 に答える
188 参照

android - StaggeredGridLayoutManager を使用して注文で異なるサイズのアイテムを作成する方法は?

さまざまなカテゴリに含まれるアイテムを含むリストがあります。たとえば、4 つのリストがあり、次のようにマージします。

私はこれらを次のようにマージします:

すべてのリスト項目のサイズが異なる可能性があり、すべての A 項目を最初のスパンに、B 項目を 2 番目のスパンに、CD 項目についても同じように配置したい...

ただし、アイテムは常に異なるスパンにあります。アイテムのサイズが異なり、次のスパンではなく、小さなサイズのアイテムの後にいくつかのアイテムが作成されるためです。StaggeredGridLayoutManager でこの問題を解決する方法はありますか?

0 投票する
4 に答える
3950 参照

android - StaggeredGridLayoutManager は項目を並べ替えます

私のアイテムにはさまざまなレイアウトがあり、レイアウト内のアイテムをドラッグして RecyclerView の上にギャップを作成することがあります。RecyclerView の上部にスクロールして戻ると、いくつかのアイテムが並べ替えられ、ギャップが埋められます。動作は次の場所にキャプチャされます。

トップへのスクロール中の自動並べ替え

隙間埋めもOK。ドラッグ中にアイテムの位置が変わっても大丈夫です。問題は、上にスクロールするときです。スクロールが終了すると並べ替えが発生します - 画面に触れていません。

これが私が RECYCLERVIEW と LAYOUT MANAGER を作成する方法です

ItemTouchHelper クラス

RecyclerView アダプター

現在、同じ構造の 12 の異なるレイアウトを使用しています。最終的なウィジェットをシミュレートするために、高さのみが異なります。

アイテムのレイアウト例