このようなレイアウト設計を取得しようとしています。そのために、GitHub ライブラリhttps://github.com/maurycyw/StaggeredGridView を、この Web サイトの他の質問で推奨されているものとして使用しています。私の問題は、colls と行がスパンされているようなデザインを取得できないことです。このライブラリでは、使用する colls の数を属性として必要としますが、この質問に入れた画像では、固定数の colls を持っていないため、いくつかのスパンが存在する可能性があると想定しました。
作者サンプルプロジェクトをダウンロードしましたが、うまく進めません。このサンプルは 2 つの列を持つアプリを提供し、ビューは Pinterest スタイルのように膨らんでいますが、画像が示すように、複数の列にまたがっており、いくつかの行には 2 つの項目があり、他の行には 3 つの項目があります...
BaseAdapter から拡張されたカスタム アダプターでは、getView() メソッドで、プロパティ スパンである LayoutParams を使用して、まとめたい列の数を設定しますが、アプリは常にクラッシュします。このライブラリが本当にこれを実行できるかどうかはわかりません。
私は他の解決策を試しました。V4 をサポートしていた StaggeredView クラスを使用しましたが、そのクラスは .jar から削除されました。そのライブラリを使用すると機能しますが、最新のものを使用していて、一部のメソッドとプロパティが存在しないため、それを使用することはできません。(私はこのhttps://github.com/chrisjenx/StaggeredGridViewをフォローしましたGoogleクラスで動作しました)
私が他のことは、複雑な相対レイアウトを膨らませる ListView を使用してから、要素内に配置することです。
この他のライブラリhttps://github.com/felipecsl/AsymmetricGridViewも試しましたが、2 スパンしかサポートしていません。
GridLayout を使用するのは簡単ですが、リサイクルをサポートする ListView が必要です。