Я использую пользовательский макет для отображения настроек, чтобы я мог вставить рекламный баннер внизу экрана.Идея состоит в том, чтобы баннер прикреплялся к нижней части страницы, а настройки отображались на остальной части экрана в виде прокрутки.У меня проблема с высотой, взятой из предпочтений.В настоящее время я жестко запрограммировал его на «2000dip» в XML-макете ниже.
Он работает нормально, баннер остается внизу, настройки вверху в режиме прокрутки.
Но имеяжестко запрограммированное значение высоты является плохим, и я бы хотел, чтобы оно автоматически устанавливалось на точную высоту, заданную настройками, потому что в настоящее время оно слишком короткое или слишком длинное (с пустой областью после настроек).Я попытался заменить жестко закодированное значение на wrap_content или fill_parent, но безуспешно.Любая идея?
В моей PreferenceActivity я включил следующие две строки:
setContentView(R.layout.preferences_scrollable);
addPreferencesFromResource(R.layout.preferences);
И я определил макет preferences_scrollable в xml-файле preferences_scrollable.xml:
<?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>