0

我有包含 ViewPager 的 DetailPage Activity。ViewPage 上的每个页面都是一个片段(DetailPage Fragment)

我想在 DetailPage Fragment 上添加 NativeContentAdView,但问题是有时广告尚未加载并且 ViewPager 被滑动(并被新片段替换),因此广告很少显示。

有关在 Fragment ViewPager 上使用 DFP 广告的任何提示?或者也许可以解释这一点的链接?

谢谢

4

1 回答 1

0

首先,加载您的广告并将其存储在您的 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);
        }
    }
    ...

}

于 2016-09-22T22:25:32.620 回答