在我的布局上,我在底部展示广告。作为加载内容的FrameLayout
布局,显示导航抽屉的AdView
和ListView
。
FrameLayout
加载ListView
,ListView
的最后一行未与广告重叠,我创建了此布局:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/lightgrey">
<LinearLayout
android:id="@+id/LinearLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical">
<FrameLayout
android:id="@+id/fragmentsboth"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
</FrameLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<com.google.android.gms.ads.AdView
android:id="@+id/adView"
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
ads:adUnitId="111111111111111111111111"
ads:adSize="SMART_BANNER"
android:layout_gravity="center|bottom"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"/>
</LinearLayout>
</LinearLayout>
<!-- The navigation drawer -->
<ListView
android:id="@+id/list_slidermenu"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:choiceMode="singleChoice"
android:divider="@color/orange"
android:dividerHeight="1dp"
android:listSelector="@drawable/menulist_selector"
android:background="@color/lblack"/>
</android.support.v4.widget.DrawerLayout>
这是按预期工作的。问题是,当我断开网络时,我的FrameLayout
,因为没有添加显示,它没有占据屏幕的所有高度。显示添加的“空间”。基本上它显示一个空矩形。
如何更改布局,以便在没有网络时FrameLayout
占据屏幕的所有高度,当有网络时,广告可以显示但不重叠内容FrameLayout
吗
答案 0 :(得分:0)
将android:id="@+id/adContainer"
添加到包含广告的LinearLayout
,并将其设置为gone
的可见性,并在代码上执行此操作:
adView.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
super.onAdLoaded();
LinearLayout adContainer = (LinearLayout) findViewById(R.id.adContainer);
adContainer.setVisibility(View.VISIBLE);
}
});