簡體   English   中英

無法使Admob在多個布局上顯示?

[英]Can't get Admob to show on multiple layouts?

我試圖讓Admob顯示在我的layout_one.xml和layout_two上,但無法顯示它。 這個應用程式左右滑動很多,我想在兩種版面配置中顯示一個廣告

這是我所有的xml布局:

activity_main.xml

   <?xml version="1.0" encoding="utf-8"?>
   <android.support.v4.view.ViewPager
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:id="@+id/pager">
   </android.support.v4.view.ViewPager>

layout_one.xml

   <?xml version="1.0" encoding="utf-8"?>
   <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:id="@+id/relative_one"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#000000"
android:focusable="true"
android:focusableInTouchMode="true"
android:orientation="vertical">


    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Copy"
        android:id="@+id/Copy"
        android:layout_centerVertical="true"
        android:layout_centerHorizontal="true"
        android:layout_alignParentEnd="false"
        android:layout_alignParentStart="false"
        android:textSize="30sp"
        android:onClick="onClickCopy"/>

<EditText
    android:layout_width="300dp"
    android:layout_height="50dp"
    android:id="@+id/stringCopy"
    android:layout_above="@+id/Copy"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="70dp"
    android:textSize="30sp"
    android:inputType="text"
    android:gravity="left|top"
    android:background="#ffffff" />

<com.google.android.gms.ads.AdView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_alignParentBottom="true"
    ads:adSize="BANNER"
    ads:adUnitId="@string/banner_ad_unit_id"/>

layout_two.xml

    <?xml version="1.0" encoding="utf-8"?>
      <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/relative_one"
android:background="#000000"
android:focusable="true"
android:focusableInTouchMode="true"
android:orientation="vertical">


<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Paste"
    android:id="@+id/Paste"
    android:layout_centerVertical="true"
    android:layout_centerHorizontal="true"
    android:layout_alignParentEnd="false"
    android:layout_alignParentStart="false"
    android:textSize="30sp"
    android:onClick="onClickPaste"/>

<EditText
    android:layout_width="300dp"
    android:layout_height="50dp"
    android:id="@+id/stringCopy"
    android:layout_marginBottom="71dp"
    android:textSize="30sp"
    android:inputType="text"
    android:gravity="left|top"
    android:background="#ffffff"
    android:layout_above="@+id/Paste"
    android:layout_centerHorizontal="true" />

   <!-- SHOULD I PUT ANOTHER ADVIEW IN THIS XML -->

 </RelativeLayout>

這是我所有的Java類:

MainActivity.java

     public class MainActivity extends FragmentActivity {

//View Pager
ViewPager viewpager;

//AdView
AdView adView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    viewpager = (ViewPager)findViewById(R.id.pager);
    PagerAdapter pAdapter = new PagerAdapter(getSupportFragmentManager());
    viewpager.setAdapter(pAdapter);

}


public void onClickCopy(View v)
{
    //Copy Text From layout_one to Clipboard

}

public void onClickPaste(View v)
{
    //Paste Text From Clipboard
}
   }

PagerAdapter.java

    public class PagerAdapter extends FragmentPagerAdapter {

public PagerAdapter(FragmentManager fm) {
    super(fm);
}

@Override
public Fragment getItem(int arg0) {

    switch (arg0) {
        case 0:
            return new FragmentOne();
        case 1:
            return new FragmentTwo();

        default:
            break;
    }
    return null;
}

@Override
public int getCount() {
    return 2;
}
}

FragmentOne.java

    public class FragmentOne extends Fragment {

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    return inflater.inflate(R.layout.layout_one, container, false);
}
}

FragmentTwo.java

   public class FragmentTwo extends Fragment {

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    return inflater.inflate(R.layout.layout_two, container, false);
}
}

我在哪里放置此代碼,以便當他們在layout_one和layout_two之間滑動時,將顯示同一廣告,並且每次更改視圖時都不會發出新的廣告請求?

   //Display test Ads
    adView = new AdView(this);
        AdRequest request = new AdRequest.Builder()
                .addTestDevice("DEVICE_ID").build();
        adView.loadAd(request);

執行此操作的標准模式是將AdView置於ViewPager的上方或下方,並使其保持靜態。 這樣一來,您就不會不斷請求永遠沒有時間顯示的廣告。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
>
   <android.support.v4.view.ViewPager
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:id="@+id/pager">
   </android.support.v4.view.ViewPager>
   <com.google.android.gms.ads.AdView
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:layout_weight="0"
     android:adUnitId="yourAdUnitId"
     android:id="@+id/adView">
</LinearLayout>

這樣,您的Adview就在ViewPager之外,並且在所有頁面上保持不變。

我使用以下代碼在滾動網格視圖中緩存Admob:

public View getView(int position, View convertView, ViewGroup parent) {
            if (position != adNum) {
            ...
            } else {
            if (mAdView == null) {
                frameLayout = new FrameLayout(mContext);
                mAdView = new AdView(mContext);

                ...

                frameLayout.addView(mAdView);
            } else {
                frameLayout.removeView(mAdView);
                frameLayout = new FrameLayout(mContext);
                frameLayout.addView(mAdView);
            }
            return frameLayout;
            }
}

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM