Favolas
Favolas

Reputation: 7243

Ad not showing on Fragment

I'm targetting my app for phones and tablets. I've created a fragments.xml on /layout and on /layout-land.

On the class that manages the fragments I've put this:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.fragments);

    adView = (AdView) this.findViewById(R.id.adView);
    AdRequest adRequest = new AdRequest.Builder().build();
    adView.loadAd(adRequest);

    if (findViewById(R.id.fragmentsboth) != null) {
        numberOfPanes = 1;
        if (savedInstanceState != null) {
            return;
        }
        QueryFragment firstFragment = new QueryFragment();
        getSupportFragmentManager().beginTransaction().add(R.id.fragmentsboth, firstFragment).commit();
    } else if (savedInstanceState == null) {
        QueryFragment firstFragment = new QueryFragment();
        getSupportFragmentManager().beginTransaction().add(R.id.fragment_one, firstFragment).commit();
        if (operation != 5) {
            Infodata secondFragment = new Infodata();
            getSupportFragmentManager().beginTransaction().add(R.id.fragment_two, secondFragment).commit();
        } else {
            Compare secondFragment = new Compare();
            getSupportFragmentManager().beginTransaction().add(R.id.fragment_two, secondFragment).commit();
        }
    }
    }

I've added the AdView to both of my fragments.xml and it is working as expected on the phone. The ad is show.

On the tablet, I can see the space for the ad but no add is show.

Here is the code from fragments.xml for the tablets:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/drawer_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/lightgrey">
    <LinearLayout
            android:id="@+id/fragment_container"
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@color/lightgrey"
            android:baselineAligned="false">
        <LinearLayout
                android:id="@+id/fragment_one"
                android:orientation="horizontal"
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="fill_parent"
                android:background="@color/lightgrey">
        </LinearLayout>
        <LinearLayout
                android:id="@+id/LinearLayout01"
                android:layout_width="0dp"
                android:layout_weight="2"
                android:layout_height="fill_parent"
                xmlns:android="http://schemas.android.com/apk/res/android"
                android:orientation="vertical"
                android:baselineAligned="false">
            <LinearLayout
                    android:id="@+id/fragment_two"
                    android:orientation="horizontal"
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:background="@color/lightgrey"
                    android:layout_weight="1">

            </LinearLayout>
            <LinearLayout
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:orientation="horizontal">
                <com.google.android.gms.ads.AdView
                        android:id="@+id/adView"
                        xmlns:ads="http://schemas.android.com/apk/res-auto"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        ads:adUnitId="12121212"
                        ads:adSize="SMART_BANNER"
                        android:layout_gravity="center|bottom"
                        android:layout_alignParentStart="true"/>
            </LinearLayout>
        </LinearLayout>
    </LinearLayout>
    <ListView
            android:id="@+id/list_slidermenu"
            android:layout_width="240dp"
            android:layout_height="match_parent"
            android:layout_gravity="start"
            android:choiceMode="singleChoice"
            android:divider="@color/orange"
            android:dividerHeight="1dp"
            android:listSelector="@drawable/menulist_selector"
            android:background="@color/lblack"/>
</android.support.v4.widget.DrawerLayout>

Why isn't the ad shown?

Upvotes: 0

Views: 1491

Answers (1)

StarsSky
StarsSky

Reputation: 6711

When LogCat displays something like:

WARN/Ads(3805): Not enough space to show ad! Wants: <xxx, xx>, Has: <xxx, xx>.

it means the Ad has no space to be displayed. Your Layout is occupying all the height on the view. So even if you specifies AdView in your layot, It is getting 0 height.

Upvotes: 2

Related Questions