2017-08-10 10 views
0

firebase admob guidesに従って、アドバンスドネイティブ広告を自分のrecyclerviewadapterに追加します。中規模および大規模な広告タイプの広告を簡単に表示できます。しかし、私のアプリはまた、視点のタイプとして、千鳥格子を含んでいます。しかし、私はこの形式の広告を表示することはできませんし、私は広告の行に白い画面が表示されます。私はこれがサイズの問題だと思いますが、admobには行のフォーマットがずれることはありません。それは280dpの最小幅の値を制限します。スタッガ形式で広告を表示する方法はありますか?そこにない場合は、あなたは私にこの問題を解決するためにadmobのような別の広告プロバイダアドバイスできますか?StaggeredGridLayoutManagerでadmobネイティブ広告を使用することはできますか?

答えて

0

この問題は、このgoogle groups answerのChrisのおかげで、StaggeredGridLayoutManagerの代わりにGridLayoutManagerを使用して解決しました。ここで

あなたがthis sample projectに続くことができるならば、あなたは他のクラスとレイアウトを見つけることができるソリューション

public static final int ITEMS_PER_AD = 8; 

    private GridLayoutManager mLayoutManager; 

    // The Native Express ad height. 
    private static final int NATIVE_EXPRESS_AD_HEIGHT = 150; 

// The Native Express ad unit ID. 
private static final String AD_UNIT_ID = "ca-app-pub-3940256099942544/1072772517"; 

// The RecyclerView that holds and displays Native Express ads and menu items. 
private RecyclerView mRecyclerView; 

// List of Native Express ads and MenuItems that populate the RecyclerView. 
private List<Object> mRecyclerViewItems = new ArrayList<>(); 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    mLayoutManager = new GridLayoutManager(this, 2); 
    mLayoutManager.setSpanSizeLookup(new 
    GridLayoutManager.SpanSizeLookup() { 
    @Override 
    public int getSpanSize(int position) { 
     if (position % MainActivity.ITEMS_PER_AD == 0) { 
      return 2; 
     } 
     return 1; 
    } 
    }); 

    mRecyclerView = (RecyclerView) findViewById(R.id.recycler_view); 

    // Use this setting to improve performance if you know that changes 
    // in content do not change the layout size of the RecyclerView. 
    mRecyclerView.setHasFixedSize(true); 

    // Specify a linear layout manager. 
    mRecyclerView.setLayoutManager(mLayoutManager); 

    // Update the RecyclerView item's list with menu items and Native Express ads. 
    addMenuItemsFromJson(); 
    addNativeExpressAds(); 
    setUpAndLoadNativeExpressAds(); 

    // Specify an adapter. 
    RecyclerView.Adapter adapter = new RecyclerViewAdapter(this, mRecyclerViewItems); 
    mRecyclerView.setAdapter(adapter); 
} 

です。これはこのプロジェクトの修正版です。 このソリューションが私のようなものになることを願っています。

関連する問題