2015-06-23 14 views
30

Hiện tại, AdView xuất hiện bên trong ViewPager để chặn nội dung trong ứng dụng. Làm cách nào để có được AdView xuất hiện bên dưới ViewPager chứ không phải bên trong.Cách xem Adview bên dưới Viewpager trong CoordinatorLayout

Tôi đã cố gắng đặt AdView trong một số RelativeLayout bên dưới ViewPager nhưng sau đó AdView hoàn toàn không hiển thị.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:ads="http://schemas.android.com/apk/res-auto" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" 
tools:context="com.candyx.testapp.Activity"> 

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/main_content" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <android.support.design.widget.AppBarLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@drawable/main_button_background"> 

     <android.support.v7.widget.Toolbar 
      xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      app:layout_scrollFlags="scroll|enterAlways"/> 

     <android.support.design.widget.TabLayout 
      android:id="@+id/tabs" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      app:tabMode="scrollable" 
      app:tabGravity="fill" 
      app:tabIndicatorColor="@color/colorTabIndicator" 
      app:tabIndicatorHeight="3dp"/> 

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


    <android.support.v4.view.ViewPager 
     android:id="@+id/viewPager" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior"/> 

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

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

</LinearLayout> 

Trả lời

77

Bạn có thể thêm ViewPagerAdView bên RelativeLayout và chỉ định android:layout_above="@+id/adView" tài sản để ViewPager để adView không chặn các nội dung ViewPager.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:ads="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.candyx.testapp.Activity"> 

    <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:app="http://schemas.android.com/apk/res-auto" 
     android:id="@+id/main_content" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_above="@+id/adView"> 

     <android.support.design.widget.AppBarLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="@drawable/main_button_background"> 

      <android.support.v7.widget.Toolbar 
       xmlns:android="http://schemas.android.com/apk/res/android" 
       android:id="@+id/toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       app:layout_scrollFlags="scroll|enterAlways"/> 

      <android.support.design.widget.TabLayout 
       android:id="@+id/tabs" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       app:tabMode="scrollable" 
       app:tabGravity="fill" 
       app:tabIndicatorColor="@color/colorTabIndicator" 
       app:tabIndicatorHeight="3dp"/> 

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

     <android.support.v4.view.ViewPager 
      android:id="@+id/viewPager" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      app:layout_behavior="@string/appbar_scrolling_view_behavior"/> 

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

    <com.google.android.gms.ads.AdView 
     android:id="@id/adView" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     ads:adSize="BANNER" 
     ads:adUnitId="@string/banner_ad_unit_id" 
     android:layout_gravity="center|bottom" 
     android:layout_alignParentBottom="true"/> 

</RelativeLayout> 
+1

Vấn đề là bây giờ nó đẩy nội dung lên và dưới thanh công cụ về biểu ngữ nên tôi nghĩ bố cục phối hợp mới của nó không muốn chơi cùng. Tôi không thực sự muốn nó lồng bên trong viewpager nhưng tôi đoán chỉ giải pháp cho đến nay là để đặt padding kích thước biểu ngữ trên recyclerview của tôi –

+0

Kiểm tra Edit ..... –

+0

Nope nó vẫn còn bên trong viewpager ở phía dưới nhưng nó ok bệnh chỉ cần sử dụng đệm dưới trên recyclerview vì vậy khi bạn cuộn xuống dưới cùng có một khoảng trống cho quảng cáo –

3

Đặt ViewPager và adview bên trong một một LinearLayout như sau:

<LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical"> 
    <android.support.v4.view.ViewPager 
      android:id="@+id/viewPager" 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight="1" 
      app:layout_behavior="@string/appbar_scrolling_view_behavior" 
      android:layout_weight="1"/> 

     <com.google.android.gms.ads.AdView 
      xmlns:ads="http://schemas.android.com/apk/res-auto" 
      android:id="@+id/adView" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      ads:adSize="BANNER" 
      ads:adUnitId="@string/banner_ad_unit_id" 
      android:layout_gravity="center|bottom" 
      /> 
    </LinearLayout> 
+0

Nope vẫn hiển thị bên trong viewpager –

+0

Tôi đã chỉnh sửa câu trả lời của mình. Quên đề cập đến LinearLayout trước đó. – Audumbar

+0

Giống như không có gì hiển thị mọi thứ chỉ trống –

1

này đã làm việc cho tôi: chỉ cần đặt bên trong ViewPager ứng dụng: layout_behavior:

<android.support.v4.view.ViewPager 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior" 
0

như tôi kiểm tra trên thiết bị thực thats làm việc cho tôi: Fix Chiều cao Declear On dưới Child `

<android.support.design.widget.CoordinatorLayout 
    android:id="@+id/htab_maincontent" 
    android:layout_width="match_parent" 
    android:layout_above="@+id/PanelView" 
    android:layout_height="match_parent"> 
    <!--android:fitsSystemWindows="false">--> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/htab_appbar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:fitsSystemWindows="true" 
     android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> 

     <android.support.design.widget.CollapsingToolbarLayout 
      android:id="@+id/htab_collapse_toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="256dp" 
      android:fitsSystemWindows="true" 
      app:contentScrim="?attr/colorPrimary" 
      app:layout_scrollFlags="scroll|exitUntilCollapsed"> 

      <ImageView 
       android:id="@+id/htab_header" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:background="@drawable/title_panel_main" 
       android:fitsSystemWindows="true" 
       android:scaleType="centerCrop" 
       app:layout_collapseMode="parallax" /> 

      <android.support.v7.widget.Toolbar 
       android:id="@+id/htab_toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="104dp" 
       android:gravity="top" 
       android:minHeight="?attr/actionBarSize" 
       app:layout_collapseMode="pin" 
       app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
       app:titleMarginTop="13dp" /> 

      <android.support.design.widget.TabLayout 
       android:id="@+id/htab_tabs" 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       android:layout_gravity="bottom" 
       app:tabIndicatorColor="@android:color/white" /> 
     </android.support.design.widget.CollapsingToolbarLayout> 
    </android.support.design.widget.AppBarLayout> 


    <android.support.v4.view.ViewPager 
     android:id="@+id/tab_viewpager" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 
</android.support.design.widget.CoordinatorLayout> 


<LinearLayout 
    android:id="@+id/PanelView" 
    android:layout_width="match_parent" 
    android:layout_height="70dp" 
    android:orientation="horizontal" 
    android:padding="7dp" 
    android:layout_alignParentBottom="true" 
    android:visibility="visible"> 



    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginRight="10dp" 
     /> 
</LinearLayout> 
</RelativeLayout>` 

Hy vọng trợ giúp bạn

Các vấn đề liên quan