問題タブ [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.
android - StaggeredGrid RecyclerView が表示されているアイテムだけでなく、すべてのアイテムをレイアウトするのはなぜですか?
画像付きの 370 個のアイテムを含むスタガード グリッドがあります。
メモリに注意するためにアイテムがすばやくリサイクルされるようにしたいのですが、ViewHolder が作成され、アダプター内のすべてのアイテムにバインドされ、子が表示されているかどうかに注意を払いません。
私は次のことを試しました
ロギングは、onCreateViewHolder と onBindViewHolder がそれぞれ 185 回呼び出されることを示しています。次に、onViewRecycled が 185 回呼び出されてから、370 回に達するまで onCreateViewHolder の呼び出しが再開されます。
これは私の理解の問題かもしれませんが、RecyclerView は、表示されているビューのみをバインドするか、20 ビューのみ、またはプール内に 20 ビュー + 画面に収まる数を尊重する必要があると思います。StaggeredGridLayoutManager でこれを実現するにはどうすればよいですか?
スクロールの変更をリッスンし、findFirstCompletelyVisibleItemPositions と findLastCompletelyVisibleItemPositions を使用すると、画面に収まる 6 項目だけでなく、アダプター内のすべての項目にまたがります。
私のアダプターコード
マイ アクティビティのレイアウト構造
フラグメント レイアウト
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 はこのように作られています。
android - StaggeredGridLayoutManager を使用して注文で異なるサイズのアイテムを作成する方法は?
さまざまなカテゴリに含まれるアイテムを含むリストがあります。たとえば、4 つのリストがあり、次のようにマージします。
私はこれらを次のようにマージします:
すべてのリスト項目のサイズが異なる可能性があり、すべての A 項目を最初のスパンに、B 項目を 2 番目のスパンに、CD 項目についても同じように配置したい...
ただし、アイテムは常に異なるスパンにあります。アイテムのサイズが異なり、次のスパンではなく、小さなサイズのアイテムの後にいくつかのアイテムが作成されるためです。StaggeredGridLayoutManager でこの問題を解決する方法はありますか?
android - StaggeredGridLayoutManager は項目を並べ替えます
私のアイテムにはさまざまなレイアウトがあり、レイアウト内のアイテムをドラッグして RecyclerView の上にギャップを作成することがあります。RecyclerView の上部にスクロールして戻ると、いくつかのアイテムが並べ替えられ、ギャップが埋められます。動作は次の場所にキャプチャされます。
隙間埋めもOK。ドラッグ中にアイテムの位置が変わっても大丈夫です。問題は、上にスクロールするときです。スクロールが終了すると並べ替えが発生します - 画面に触れていません。
これが私が RECYCLERVIEW と LAYOUT MANAGER を作成する方法です
ItemTouchHelper クラス
RecyclerView アダプター
現在、同じ構造の 12 の異なるレイアウトを使用しています。最終的なウィジェットをシミュレートするために、高さのみが異なります。
アイテムのレイアウト例