我在列表视图底部显示广告时遇到麻烦,在广告投放的主要活动中,唯一的区别是我使用的是viewpager而不是listview。
这是布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<com.google.ads.AdView
xmlns:app="http://schemas.android.com/apk/lib/com.google.ads"
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
android:id="@+id/adView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
ads:loadAdOnCreate="true"
android:background="#313131"
app:adSize="SMART_BANNER"
app:adUnitId="MY_ID" />
<ListView
android:id="@id/android:list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@id/adView" />
</RelativeLayout>
列表视图显示在广告的TOP上,当然不能点击,但同样的布局适用于viewpager。
答案 0 :(得分:0)
另一种方式。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ListView
android:id="@id/android:list"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
<com.google.ads.AdView
xmlns:app="http://schemas.android.com/apk/lib/com.google.ads"
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
android:id="@+id/adView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
ads:loadAdOnCreate="true"
android:background="#313131"
app:adSize="SMART_BANNER"
app:adUnitId="MY_ID" />
</LinearLayout >
当Ad - 加载时,获得他的身高。然后是ListView bottomMargin = adHeight
和Ad topMargin = (-1)*adHeight
。试试吧。
答案 1 :(得分:0)
最终布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<com.google.ads.AdView
xmlns:app="http://schemas.android.com/apk/lib/com.google.ads"
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
android:id="@+id/adView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
ads:loadAdOnCreate="true"
android:background="#313131"
app:adSize="SMART_BANNER"
app:adUnitId="MY_ID" />
<LinearLayout
android:id="@+id/listview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/adView" />
</RelativeLayout>
然后更换:
getSupportFragmentManager().beginTransaction().add(android.R.id.content, list).commit();
使用:
getSupportFragmentManager().beginTransaction().add(R.id.listview, list).commit();
答案 2 :(得分:0)
<ListView
android:id="@id/android:list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
/>
<com.google.ads.AdView
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
android:id="@+id/adView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#313131"
ads:loadAdOnCreate="true"
ads="SMART_BANNER"
ads="MY_ID" />
注意这是一个布局问题。它与Admob无关。如果您使用的是LinearLayout,则只需为要扩展的项目设置layout_height =“wrap + content”和layout_gravity =“1”以使用未使用的空间。在这种情况下,你的ListView。
你的问题实际上是layout_height =“match_parent”
注意,我还删除了广告命名空间的不必要重命名。