Android如何将AdView与线性布局中心对齐

时间:2012-04-13 14:59:23

标签: android listview adview

我正在尝试将gogole Adview与列表的底部和中心对齐,直到现在我能够强制Adview来到列表的底部而不会干扰列表,但它不会出现在中心。

代码粘贴在下面,抱歉没有附上截图

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
    android:id="@+id/topLayout"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent" >

    <LinearLayout
        android:id="@+id/linearlayoutlistview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_above="@+id/ad_holder"
        android:orientation="vertical" >

        <ListView
            android:id="@android:id/list"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="2dip"
            android:drawablePadding="4dip"
            android:paddingTop="2dip"
            android:textAppearance="?android:attr/textAppearanceSmall"
            android:textStyle="bold"
            android:typeface="serif" >
        </ListView>
    </LinearLayout>

    <!-- Ad Placeholder -->

    <LinearLayout
        android:id="@+id/ad_holder"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:gravity="bottom" >

        <com.google.ads.AdView
            android:id="@+id/adView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            ads:adSize="BANNER"
            ads:adUnitId="MY_AD_UNIT_ID"
            ads:loadAdOnCreate="true"
            ads:testDevices="TEST_EMULATOR" >
        </com.google.ads.AdView>

    </LinearLayout>

</RelativeLayout>

4 个答案:

答案 0 :(得分:10)

请勿将LinearLayout用作AdView的父级。相反,请使用RelativeLayoutlayout_centerInParent="true"作为AdView:

<RelativeLayout
    android:id="@+id/ad_holder"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:gravity="bottom" >

    <com.google.ads.AdView
        android:id="@+id/adView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        ads:adSize="BANNER"
        ads:adUnitId="MY_AD_UNIT_ID"
        ads:loadAdOnCreate="true"
        ads:testDevices="TEST_EMULATOR" >
    </com.google.ads.AdView>

</RelativeLayout>

答案 1 :(得分:5)

如果您仍想使用android:layout_width="fill_parent",请使用LinearLayout

答案 2 :(得分:0)

使用 android:layout_alignParentBottom="true"android:layout_centerHorizontal="true"

答案 3 :(得分:0)

或者您也可以将其与LinearLayout一起使用:

  

android:layout_gravity =“ center_horizo​​ntal”