我正在使用自定义布局来显示首选项,以便可以在屏幕底部插入广告横幅。这个想法是让横幅贴在页面底部,并在屏幕的其余部分以滚动视图的形式显示首选项。我对偏好所采用的高度有疑问。我目前在下面的 XML 布局中将其硬编码为“2000dip”。
它工作正常,横幅停留在底部,偏好在可滚动视图的顶部。
但是有一个硬编码的高度值是不好的,我希望它自动设置为首选项所采用的确切高度,因为目前它要么太短要么太长(在首选项之后有一个空白区域)。我试图用 wrap_content 或 fill_parent 替换硬编码值,但没有成功。任何想法?
在我的 PreferenceActivity 中,我包含了以下两行:
setContentView(R.layout.preferences_scrollable);
addPreferencesFromResource(R.layout.preferences);
我在xml文件preferences_scrollable.xml中定义了一个布局preferences_scrollable:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:orientation="vertical">
<ScrollView android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_weight="1"
android:id="@+id/pref_scrollable_sv">
<LinearLayout android:layout_width="fill_parent"
android:layout_height="wrap_content" android:orientation="vertical"
android:id="@+id/pref_scrollable_ll">
<ListView android:id="@android:id/list"
android:layout_width="fill_parent" android:layout_height="2000dip">
</ListView>
</LinearLayout>
</ScrollView>
<LinearLayout android:layout_width="fill_parent"
android:layout_height="wrap_content" android:orientation="vertical">
<com.google.ads.AdView android:id="@+id/ad"
ads:adSize="BANNER" android:layout_width="fill_parent"
ads:loadAdOnCreate="true" ads:adUnitId="xxx"
android:layout_height="wrap_content"
android:layout_weight="0"/>
</LinearLayout>
</LinearLayout>