2016-03-03 5 views
2

У меня проблема с положением кнопки плавающего действия. Когда я помещаю объявление из Admob fab, над ним. Я хочу разместить объявление под кнопкой fab, но любой метод, который я пытаюсь сделать, не работает.Admob под плавающей кнопкой действия

Image of current postion fab to ad

@ макет/activity_layout:

<?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" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    tools:context=".activities.MainActivity"> 

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

     <android.support.design.widget.AppBarLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:theme="@style/LzTheme.AppBarOverlay"> 

      <android.support.v7.widget.Toolbar 
       android:id="@+id/toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       android:background="?attr/colorPrimary" 
       app:popupTheme="@style/LzTheme.PopupOverlay"/> 

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

     <FrameLayout 
      android:id="@+id/drawer_layout" 
      xmlns:android="http://schemas.android.com/apk/res/android" 
      xmlns:tools="http://schemas.android.com/tools" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"> 

      <include layout="@layout/content_main"/> 

      <com.google.android.gms.ads.AdView 
       android:id="@+id/ad_view" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center|bottom" 
       app:adSize="BANNER" 
       app:adUnitId="@string/banner_ad_unit_id"/> 
     </FrameLayout> 
    </LinearLayout> 
</android.support.design.widget.CoordinatorLayout> 

@ макет/content_main:

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior" 
    tools:context=".activities.MainActivity" 
    tools:showIn="@layout/activity_main"> 

    <FrameLayout 
     android:id="@+id/FragmentContainer" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"/> 

</RelativeLayout> 

@ макета/фрагмента:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      xmlns:app="http://schemas.android.com/apk/res-auto" 
      xmlns:tools="http://schemas.android.com/tools" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      tools:context="com.dsxx.test.fragments.testFragment"> 

    <android.support.v7.widget.RecyclerView 
     android:id="@+id/Recycler" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     /> 

    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/fab_dodaj" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="bottom|end" 

     app:srcCompat="@drawable/fab_plus" 
     app:fabSize="normal" 
     app:borderWidth="3dp" 
     app:elevation="6dp"/> 

</FrameLayout> 
+0

Посмотрите http://stackoverflow.com/questions/30686225/adview-and-floatingactionbutton-overlap-while-using-coordinatorlayout –

+0

Я пробовал этот метод, но он не работает , – szaman

ответ

4

Я предлагаю вам создать макеты, которые содержат кнопку fab из стандартного макета Android Studio.

После его создания, есть 2 макетов:

  1. contain_main.xml

  2. activity_main.xml

Edit activity_main.xml (я ставлю некоторые LinearLayout для того, чтобы в состоянии установить orientation является вертикальный) следующим образом:

activity_main.xml «S код:

<?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" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    tools:context="com.appschef.mobilequeue.floatingboat.MainActivity"> 



    <android.support.design.widget.AppBarLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:theme="@style/AppTheme.AppBarOverlay"> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:background="?attr/colorPrimary" 
      app:popupTheme="@style/AppTheme.PopupOverlay" /> 

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

    <include layout="@layout/content_main" /> 

    <!-- start from here--> 
    <!-- LinearLayout for give space fab and AdView--> 
    <LinearLayout 
    android:orientation="vertical" 
    android:gravity="bottom" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:orientation="vertical" 
       android:layout_height="wrap_content"> 
       <!-- linearLayour for fab button--> 
       <LinearLayout 
        android:layout_weight="1" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:gravity="right"> 
        <android.support.design.widget.FloatingActionButton 
         android:id="@+id/fab" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:layout_gravity="bottom|end|left" 
         android:layout_margin="@dimen/fab_margin" 
         android:src="@android:drawable/ic_dialog_email" /> 
       </LinearLayout> 

       <!-- LinearLayour for AdView--> 
       <LinearLayout 
        android:layout_weight="1" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent"> 
        <com.google.android.gms.ads.AdView 
         android:layout_width="match_parent" 
         android:layout_height="match_parent"> 
        </com.google.android.gms.ads.AdView> 
       </LinearLayout> 

      </LinearLayout> 
    </LinearLayout> 
    <!-- end from here--> 

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

Я попробовал его и он работает хорошо.

enter image description here

+0

добро пожаловать, друг. –

+1

Вам следует отделить fab от баннера, чтобы избежать случайных кликов и разочарования пользователя. Если вам нужна фабрика, поставьте баннер в верхней части экрана –

0

Вместо использования FrameLayout в качестве родителя для вашего макета объявления используйте вертикальный LinearLayout. FrameLayout добавляет его в качестве кадров. Если вы хотите использовать его, добавьте нижнее поле к content_main, которое должно быть равно или больше высоты макета объявления.

Смежные вопросы