我正在研究android项目,我在浏览列表视图下方的屏幕底部显示广告时遇到问题,而不会造成任何重叠。
目前,如果列表视图中有大量项目导致滚动,则广告应显示在列表视图下方,但广告位于列表视图的顶部,因此,用户无法看到列表视图底部的内容。
以下是我的XML布局的副本
<?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:layout_width="match_parent"
android:layout_height="fill_parent"
android:background="@color/black"
android:orientation="vertical" >
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView android:id="@+id/password_noRecords"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_gravity="center"
android:text="There are currently\nno saved logins"
android:textSize="20dp"
android:textStyle="bold|italic"/>
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
</ListView>
<Button android:id="@+id/password_clearSearch"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/password_clear_search"
android:layout_alignParentBottom="true"
android:visibility="gone"/>
</LinearLayout>
<com.google.ads.AdView android:id="@+id/adView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_alignParentBottom="true"
android:gravity="center_horizontal"
ads:adUnitId="a14d6125d95c70b"
ads:adSize="BANNER"
ads:testDevices="TEST_EMULATOR, 015d1884222bfe01"/>
</RelativeLayout>
我有很多不同的方法,将它全部放在相对布局中而不是具有另一个线性布局,没有对齐父底部= true但是它位于列表视图的顶部,重叠在顶部的任何位置列表显示。
感谢您提供的任何帮助。
答案 0 :(得分:11)
您可以仅使用LinearLayout
作为基础(摆脱RelativeLayout
)并使用android:layout_weight
上的ListView
属性来解决此问题。例如:
<?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">
<TextView android:id="@+id/password_noRecords"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_gravity="center"
android:text="There are currently\nno saved logins"
android:textSize="20dp"
android:textStyle="bold|italic"/>
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<Button android:id="@+id/password_clearSearch"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/password_clear_search"
android:layout_alignParentBottom="true"
android:visibility="gone"/>
<com.google.ads.AdView android:id="@+id/adView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:gravity="center_horizontal"
ads:adUnitId="a14d6125d95c70b"
ads:adSize="BANNER"
ads:testDevices="TEST_EMULATOR, 015d1884222bfe01"/>
</LinearLayout>
请注意ListView
有android:layout_height="0dp"
和android:layout_weight="1"
。这告诉它在将其他元素放入LinearLayout
。
答案 1 :(得分:0)
尝试将android:id="@+id/linear_layout"
添加到您的LinearLayout,并将android:layout_below="@id/linear_layout"
添加到<com.google.ads.AdView ... />