1

アプリで RecyclerView に基づく 2 列の GridView を使用しています。

ネイティブ広告を埋め込みたい。これを行うと、ネイティブ広告は 1 つの列に切り取られますが、実際にはネイティブ広告をすべての列に元のサイズまで引き延ばしたいと考えています。

ここに画像の説明を入力 私の言いたいことを視覚化するために、例を添付しました。これがLovooアプリです

これは RecyclerView でどのように行うことができますか?

4

1 に答える 1

1

Vipul Asriのヒントによると、うまくいくものを見つけました

final GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 2);

        gridLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
            @Override
            public int getSpanSize(int position) {
                switch (listAdapter.getItemViewType(position)) {
                    case ViewType.DEFAULT_ITEM_TYPE:
                        return 1;
                    case ViewType.AD_ITEM_TYPE:
                        return gridLayoutManager.getSpanCount();
                    default:
                        return -1;
                }
            }
        });

そして、あなたのアダプターでは、このようなもの

   @Override
    public int getItemViewType(int position) {
        if (isAd(position))
            return ViewType.AD_ITEM_TYPE;
        return ViewType.DEFAULT_ITEM_TYPE;
    }
于 2016-11-27T11:24:17.960 に答える