我有包含 ViewPager 的 DetailPage Activity。ViewPage 上的每个页面都是一个片段(DetailPage Fragment)
我想在 DetailPage Fragment 上添加 NativeContentAdView,但问题是有时广告尚未加载并且 ViewPager 被滑动(并被新片段替换),因此广告很少显示。
有关在 Fragment ViewPager 上使用 DFP 广告的任何提示?或者也许可以解释这一点的链接?
谢谢
我有包含 ViewPager 的 DetailPage Activity。ViewPage 上的每个页面都是一个片段(DetailPage Fragment)
我想在 DetailPage Fragment 上添加 NativeContentAdView,但问题是有时广告尚未加载并且 ViewPager 被滑动(并被新片段替换),因此广告很少显示。
有关在 Fragment ViewPager 上使用 DFP 广告的任何提示?或者也许可以解释这一点的链接?
谢谢
首先,加载您的广告并将其存储在您的 UI 片段之外的某个位置。我推荐一个保留的片段。然后,从您希望显示广告的片段(即 DetailPageFragment)中实现回调,请求显示广告。
示例:(我不知道这是否编译;它更像是伪代码)
public class DetailPageFragment extends Fragment {
public interface AdRequestListener {
void onAdRequestedForDisplay();
}
...
public void onAdLoaded(NativeAd ad) {
// Display ad here
}
public void onAttach(Activity activity) {
// Set listener
}
public void onCreateView(Bundle savedInstanceState) {
listener.onAdRequestedForDisplay();
}
}
public class AdLoadingFragment extends Fragment {
private NativeAd ad;
public interface AdLoadListener {
void onAdLoaded(NativeAd ad);
}
public void onAttach(Activity activity) {
try {
this.listener = (AdLoadListener) activity;
} catch(ClassCastException cce) {
throw new RuntimeException(activity.toString() + " must implement AdLoadListener");
}
}
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRetainInstance(true);
if(savedInstanceState != null) {
requestAd();
}
}
private void requestAd() {
//Request ad
//Notify listener when ad is loaded
}
public void onAdRequested() {
if(ad != null && listener != null) {
listener.onAdLoaded(ad);
}
}
...
}