admob横幅广告重叠主要布局

时间:2016-08-07 06:59:12

标签: android android-layout admob

我的Android应用程序中的Admob横幅广告与主要版面的底部重叠,这里有很多解决方案但是没有它们正在为我工​​作。如何将这两个布局分开。以下是我的activity.main.xml

let defaults = UserDefaults.standard

    override func viewDidLoad() {
        super.viewDidLoad()
        if defaults.value(forKey: "switchON") != nil{
            let switchON: Bool = defaults.value(forKey: "switchON")  as! Bool
            if switchON == true{
                self.view.backgroundColor = UIColor.red()
            }
            else if switchON == false{
                self.view.backgroundColor = UIColor.green()
            }
        }
    }

2 个答案:

答案 0 :(得分:0)

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/res-auto"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/drawerLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">

<android.support.design.widget.CoordinatorLayout
    android:id="@+id/coordinator_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ProgressBar
        android:id="@+id/progressBar1"
        style="?android:attr/progressBarStyleLarge"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_centerHorizontal="true"
        android:layout_gravity="center"
        android:indeterminate="false" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <WebView
            android:id="@+id/webView1"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" />

        <com.google.android.gms.ads.AdView
            android:id="@+id/adView"
            android:layout_width="match_parent"
            android:layout_height="120dp"
            android:layout_gravity="bottom"
            ads:adSize="SMART_BANNER"

            ads:adUnitId="@string/banner_ad_unit_id"></com.google.android.gms.ads.AdView>
    </LinearLayout>
</android.support.design.widget.CoordinatorLayout>

<android.support.design.widget.NavigationView
    android:id="@+id/navigation_view"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    app:itemIconTint="#d20b0d"
    app:itemTextColor="#333"
    app:menu="@menu/navigation_items" />

答案 1 :(得分:0)

问题是

Admob广告在TOP | BOTTOM wrt Parent上对齐,因此它与正在获取全宽和屏幕高度的WebView重叠。

您可以遵循两种方法来避免广告在WebView上重叠

解决方案1 ​​

将margin_bottom提供给Webview

android:layout_marginBottom="50dp"  or android:layout_marginBottom="90dp"

当您使用“ SMART BANNER ”时,您可以在两个不同的“ dimens.xml ”wrt屏幕分辨率中配置硬编码值,即“50dp”和“90dp”大小

解决方案2

您可以使用LinearLayout同时包含“WebView”和“Admob Ad”,并仅为webview指定权重,如下面的代码所示。

<android.support.v4.widget.DrawerLayout
    android:id="@+id/drawerLayout"
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    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.support.design.widget.CoordinatorLayout
        android:id="@+id/coordinator_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <ProgressBar
            android:id="@+id/progressBar1"
            style="?android:attr/progressBarStyleLarge"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_gravity="center"
            android:indeterminate="false"/>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">

            <WebView
                android:id="@+id/webView1"
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight="1"/>

            <com.google.android.gms.ads.AdView
                android:id="@+id/adView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="bottom"
                ads:adSize="SMART_BANNER"
                ads:adUnitId="@string/banner_ad_unit_id">
            </com.google.android.gms.ads.AdView>

        </LinearLayout>

    </android.support.design.widget.CoordinatorLayout>

    <android.support.design.widget.NavigationView
        android:id="@+id/navigation_view"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        app:itemIconTint="#d20b0d"
        app:itemTextColor="#333"
        app:menu="@menu/navigation_items"/>
</android.support.v4.widget.DrawerLayout>

你选择的是你的选择。

注意:不要在布局中使用 fill_parent ,因为它们已被弃用