2015-08-28 55 views
1

有關於此問題的post。但它並不那麼詳細。MoPub原生廣告與Android中的視圖模式集成

我正在使用一個網格適配器(從ArrayAdapter擴展)與視圖。我用MoPubAdAdapter包裝它。廣告在gridview中顯示,但當我點擊一個項目時,它給了我一個錯誤的(實際上,後面的一個或兩個項目)。 我認爲這是因爲viewholder而發生的。當消除時間和項目的位置不在屏幕上的廣告項目被固定,但是一旦廣告出現在屏幕上,定位就會再次被破壞。

我該如何解決?我必須做定製整合嗎?如果是這樣,我該怎麼做?有沒有關於它的文檔?

我用MoPub集成驗證碼:

// Set up a ViewBinder and MoPubNativeAdRenderer as above. 
ViewBinder viewBinder = new ViewBinder.Builder(R.layout.native_ad_layout) 
     .mainImageId(R.id.native_ad_main_image) 
     .iconImageId(R.id.native_ad_icon_image) 
     .titleId(R.id.native_ad_title) 
     .build(); 

// Set up the positioning behavior your ads should have. 
MoPubNativeAdPositioning.MoPubServerPositioning adPositioning = 
     MoPubNativeAdPositioning.serverPositioning(); 
MoPubNativeAdRenderer adRenderer = new MoPubNativeAdRenderer(viewBinder); 

// Set up the MoPubAdAdapter 
mAdAdapter = new MoPubAdAdapter(mContext, adapter, adPositioning); 
mAdAdapter.registerAdRenderer(adRenderer); 
loadAds(); 

回答

0

你可以在這樣的起始銜接的元素的原始位置:

position = mAdAdapter.getOriginalPosition(position); 

看看下面的文章:https://github.com/mopub/mopub-android-sdk/wiki/Native-Ads-with-Recycler-View

因爲它聲明

如果您在原始適配器上註冊了任何數據觀察員,您應該將它們註冊到MoPubRecyclerAdapter上,以便它們將 接收帶有調整的內容項位置的消息。如果您沒有這樣做,您收到的用於插入和刪除郵件的位置可能不準確。請務必檢查isAd(位置)並使用 MoPubRecyclerAdapter#getOriginalPosition如果您需要在您的本地適配器中使用 項目的位置。