2015-08-28 61 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如果您需要在您的本地适配器中使用 项目的位置。