我正在尝试将10个dataitem的1个adView添加到gridview中(例如:36个数据项将显示3个adview) .

网格视图:

<GridView
    android:id="@+id/gridview_university"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:clickable="false"
    android:fastScrollEnabled="false"
    android:horizontalSpacing="5dp"
    android:padding="8dp"
    android:scrollbars="vertical"
    android:verticalSpacing="11dp" />

首先尝试使用( uni_listview_ads.xml )文件但不工作并显示(缺少必需的XML属性"adSize")消息

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="2dp"
android:layout_marginTop="2dp"
android:layout_weight="1"
android:gravity="center"
android:orientation="vertical">


<com.google.android.gms.ads.AdView
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    android:id="@+id/adViewUniver"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    />

里面 public View getView(int position, View convertView, ViewGroup parent) 方法

View myView = inflater.inflate(R.layout.uni_listview_ads, null);
            AdView ads = (AdView) myView.findViewById(R.id.adViewUniver);

            ads.setAdSize(AdSize.BANNER);
            ads.setAdUnitId(getUnitID());

            AdRequest adRequest = new AdRequest.Builder().build();
            ads.loadAd(adRequest);

            return myView;

在All Attempts失败后,我用代码替换了所有这些

View getAd() {
    AdView mAdView;

    LinearLayout layout = new LinearLayout(mContext);
    layout.setOrientation(LinearLayout.VERTICAL);

    layout.setGravity(Gravity.CENTER);

    mAdView = new AdView(mContext);
    mAdView.setAdSize(AdSize.BANNER);
    mAdView.setAdUnitId(getUnitID());

    // Create an ad request.
    AdRequest adRequestBuilder = new AdRequest.Builder().build();

    // Optionally populate the ad request builder.

    layout.addView(mAdView);

    mAdView.loadAd(adRequestBuilder);

    return layout;
}

这里我把这一行放在 public View getView(int position, View convertView, ViewGroup parent) 方法中

return getAd();

结果:

first attempt : show(缺少必需的XML属性"adSize")消息

second attempt : 工作但是当我向下滚动并返回顶部时,adView会消失 .