我试图在我的Android应用程序中显示AdView。我有一个这样的RelativeLayout:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/mainLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<ListView
android:id="@+id/listaFicheros"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="visible"
tools:listitem="@android:layout/simple_list_item_2" >
</ListView>
<TextView
android:id="@+id/sinFicheros"
style="@android:style/TextAppearance.Large"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignParentTop="true"
android:gravity="center"
android:clickable="true"
android:text="@string/SinFicheros" >
</TextView>
</RelativeLayout>
我以编程方式添加AdView(我需要),并像这样设置布局:
adView = new AdView(this, AdSize.BANNER, ID_EDITOR);
ListView listaFicheros = (ListView)findViewById(R.id.listaFicheros);
RelativeLayout.LayoutParams adLayoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
adLayoutParams.addRule(RelativeLayout.ALIGN_BOTTOM, listaFicheros.getId());
adView.setLayoutParams(adLayoutParams);
RelativeLayout.LayoutParams listaLayoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);
listaLayoutParams.addRule(RelativeLayout.ABOVE, adView.getId());
listaFicheros.setLayoutParams(listaLayoutParams);
RelativeLayout layout = (RelativeLayout)findViewById(R.id.mainLayout);
layout.addView(adView);
Adview在屏幕底部正确显示,但我的问题是Adview与ListView的最后一项重叠,我看不到它。
有人能帮忙吗?你已经为listaFicheros设置了布局参数为MATCH_PARENT, MATCH_PARENT(即接管整个父视图),并且你已经告诉AdView将它的底部与listaFicheros的底部对齐。这就是为什么你有一个重叠。
有几种方法可以解决这个问题。建议将AdView更改为ALIGN_PARENT_BOTTOM。强烈建议你在xml中构造AdView,因为它将帮助你更清楚地考虑你的布局