Ad Mob Smart Banner работает не на всех устройствах
У меня есть макет, в котором у меня есть вид сетки, и я хочу показать баннер в нижней части экрана, у меня есть следующий код
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
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:background="@color/backgroundColor"
android:fitsSystemWindows="true">
<include layout="@layout/detail_activity_bar"></include>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/home_grid"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:horizontalSpacing="5dp"
android:verticalSpacing="5dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:layout_marginTop="5dp"
android:layout_marginBottom="60dp"
android:numColumns="2"
android:stretchMode="columnWidth"/>
<com.google.android.gms.ads.AdView
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:id="@+id/adViewGallery"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
android:layout_marginBottom="5dp"
android:layout_gravity="bottom|center"
ads:adSize="SMART_BANNER"
ads:adUnitId="@string/home_banner">
</com.google.android.gms.ads.AdView>
</FrameLayout>
</android.support.design.widget.CoordinatorLayout>
Он хорошо работает с 4-дюймовыми мобильными устройствами, но на больших устройствах баннерная реклама пересекается с сеткой. Как сделать его универсальным для всех устройств, чтобы он не перекрывался с содержимым приложения?
2 ответа
Решение
Попробуйте макет ниже
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:weightSum="1"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#29000000"
android:orientation="vertical"
android:fitsSystemWindows="true">
<include layout="@layout/detail_activity_bar"></include>
<GridView
android:layout_weight="0.9"
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/home_grid"
android:layout_width="match_parent"
android:layout_height="0dp"
android:horizontalSpacing="5dp"
android:verticalSpacing="5dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:layout_marginTop="5dp"
android:numColumns="2"
android:stretchMode="columnWidth"/>
<com.google.android.gms.ads.AdView
android:layout_weight="0.1"
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:id="@+id/adViewGallery"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginBottom="5dp"
android:layout_gravity="bottom|center"
ads:adSize="SMART_BANNER"
ads:adUnitId="@string/home_banner">
</com.google.android.gms.ads.AdView>
</LinearLayout>
Просто используйте LinearLayout или RelativeLayout вместо FrameLayout, и это будет правильным на всех устройствах!:)