アプリで RecyclerView に基づく 2 列の GridView を使用しています。
ネイティブ広告を埋め込みたい。これを行うと、ネイティブ広告は 1 つの列に切り取られますが、実際にはネイティブ広告をすべての列に元のサイズまで引き延ばしたいと考えています。
私の言いたいことを視覚化するために、例を添付しました。これがLovooアプリです
これは RecyclerView でどのように行うことができますか?
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;
}