2016-07-02 4 views
1

AdMob 배너 광고를 내 Activity에 통합 중입니다. 레이아웃은 GridViewAdView으로 구성됩니다.AdMob 배너가 표시 될 때 레이아웃 조정

는 내가 원하는 : - 광고가 표시되지 않습니다

, 즉 시작시 또는 광고를 다운로드 또는 아무것도지고, 나는 GridView 모든 화면을 갖고 싶어. 그러나 광고가 표시 될 때 아래에 필요한 공간을 포함해야하지만 아무 것도 겹치지 않아야합니다.

내 레이아웃 : -

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    xmlns:ads="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:weightSum="10" 
    android:id="@+id/ll_gridmain" 
    tools:context="mohits.app.picreddit.itemgrid"> 

<GridView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/gridview" 
    android:layout_width="match_parent" 
    android:layout_height="0dp" 
    android:layout_weight="9" 
    android:divider="@null" 
    android:numColumns="2" 
    android:background="#454545" > 
    </GridView> 

<LinearLayout android:id="@+id/banner_view" 
    android:orientation="horizontal" 
    android:layout_height="0dp" 
    android:layout_width="match_parent" 
    android:layout_weight="1" 
    android:layout_centerHorizontal="true" 
    android:layout_alignParentBottom="true" 
    android:gravity="bottom" 
    android:visibility="gone"> 
<com.google.android.gms.ads.AdView 
     android:id="@+id/adView" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     ads:adSize="BANNER" 
     ads:adUnitId="@string/ad_banner" 
     android:visibility="gone"> 
    </com.google.android.gms.ads.AdView> 

</LinearLayout> 

</LinearLayout> 

내 활동 : -

mAdView = (AdView) findViewById(R.id.adView); 
     AdRequest adRequest = new AdRequest.Builder() 
     .addTestDevice("xxx") 
     .build(); 
     mAdView.setAdListener(new AdListener() { 
     @Override 
     public void onAdLoaded() { 
      super.onAdLoaded(); 
      mAdView.setVisibility(View.VISIBLE); 
      bannerView.setVisibility(View.VISIBLE); 
     } 
    }); 

내가 무엇입니까 무엇 : -

banner_view 레이아웃은 항상 경우에도 표시되어 나는 이것을로 설정하고있다.. 광고가 게재 될 때만 표시되어야합니다.

감사합니다.

답변

1

문제는 당신이 당신의 기치를 제거 할 경우에도 GridView의 무게는 여전히 9되며 레이아웃의 weightSum10, 그래서 GridView 전체 LinearLayout을 채울 것입니다.

작업을해야 레이아웃에서 다음 줄을 제거 : 또한

android:weightSum="10" 

을의 AdView의 가시성을 설정하는 것은 중복입니다.

ViewGroup의 표시 여부를 설정하면 자녀에게 영향을 미칩니다.

당신은 당신의 AdView에서 다음과 같은 속성을 제거 할 수 있습니다 : 그 후

android:visibility="gone" 

banner_view의 가시성이 충분해야 설정 :

@Override 
public void onAdLoaded() { 
    super.onAdLoaded(); 
    bannerView.setVisibility(View.VISIBLE); 
} 
+0

아를! 감사합니다. 일하는 것. – Mohit

관련 문제