web-dev-qa-db-ja.com

全幅ヘッダー付きのRecyclerView GridLayoutManager

非常に役立つ例 here を使用して、RecyclerViewとGridLayoutManagerを表示し、ヘッダー付きのグリッドを表示しています。

かなり良いように見えますが、私のグラフィックデザイナーはヘッダーアイテムがRecyclerViewの全幅を占めることを望んでいます。現在、パディングがあります。

GridLayoutManagerをセットアップするときに、パディングを追加します(他のグリッドアイテムに必要です):[Xamarin C#を使用しています]

var numColumns = myListView.MeasuredWidth / tileSizeMax;
myGridView.SetPadding(tilePadding, tilePadding, tilePadding, tilePadding);
layoutManager = new GridLayoutManager(Activity, numColumns);
myListView.SetLayoutManager(layoutManager);

だから、どのようにヘッダー項目のパディングを異なるように設定できますか?またはパディングの上に自分自身を描画させることができますか?

24
Kibi

これで試してください:

mLayoutManager = new GridLayoutManager(this, 2);
        mLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
            @Override
            public int getSpanSize(int position) {
                switch(mAdapter.getItemViewType(position)){
                    case MyAdapter.HEADER:
                        return 2;

                    case MyAdapter.ITEM:
                        return 1;

                    default:
                        return 1;
                }
            }
        });

そして、これらのリンクを確認してください:

http://blog.sqisland.com/2014/12/recyclerview-grid-with-header.htmlSpanSizeLookupを使用してGridLayoutManagerのアイテムのスパンを設定

57
Alex