Ich bin sehr neu in Android (etwa 2 Tage), aber ich bin mit anderen Layout-Toolkits erfahren. Ich versuche, eine AdView unter einem TabHost zu setzen, und es scheint, dass ich entweder das TabWidget oder die AdView richtig anzeigen lassen kann, aber nie beide.
Hier ist zunächst eine ASCII-Kunstversion dessen, was ich zu erreichen versuche:
\--------------------------------------------
| Tab 1 | Tab 2 |
--------------------------------------------
| MapView when tab 1 is selected |
| |
| |
| |
| |
| |
| |
--------------------------------------------
| AdView that stays no matter what tab |
--------------------------------------------
Wie Sie sehen können, versuche ich, die AdView außerhalb das TabWidget oder FrameLayout. Ich möchte, dass es unterhalb der gesamten Tabhost Inhalte sein.
Hier ist das Layout, das ich habe 前 Hinzufügen des AdViews:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:myapp="http://schemas.android.com/apk/res/org.mbs3.android.ufcm"
android:layout_height="fill_parent"
android:layout_width="wrap_content"
>
<TabHost android:id="@+id/tabhost" android:layout_width="fill_parent"
android:layout_height="wrap_content">
<LinearLayout android:layout_width="fill_parent"
android:id="@+id/home_layout" android:orientation="vertical"
android:layout_height="fill_parent">
<TabWidget android:id="@android:id/tabs"
android:layout_width="fill_parent" android:layout_height="wrap_content" />
<FrameLayout android:id="@android:id/tabcontent"
android:layout_width="fill_parent" android:layout_height="fill_parent">
<RelativeLayout android:id="@+id/emptylayout1"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent" />
<!--
programatically added tabs will appear here,
one per activity
-->
</FrameLayout>
</LinearLayout>
</TabHost>
</RelativeLayout>
Ich habe verschiedene Tipps ausprobiert, um das AdView hinzuzufügen, z. B. http://www.spencerelliott.ca/blogs/blog-Android-menu . Hier ist das beste Layout, das mir eingefallen ist:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:myapp="http://schemas.android.com/apk/res/org.mbs3.android.ufcm"
android:layout_height="fill_parent" android:layout_width="wrap_content">
<TabHost android:id="@+id/tabhost" android:layout_width="fill_parent"
android:layout_height="wrap_content">
<LinearLayout android:layout_width="fill_parent"
android:id="@+id/home_layout" android:orientation="vertical"
android:layout_height="fill_parent">
<TabWidget android:id="@android:id/tabs"
android:layout_width="fill_parent" android:layout_height="wrap_content" />
<FrameLayout android:id="@android:id/tabcontent"
android:layout_width="fill_parent" android:layout_height="fill_parent">
<RelativeLayout android:id="@+id/emptylayout1"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent" />
<!--
programatically added tabs will appear here, usually one per
activity
-->
</FrameLayout>
</LinearLayout>
</TabHost>
<LinearLayout android:layout_width="fill_parent"
android:id="@+id/ad_layout" android:layout_height="wrap_content"
android:gravity="bottom" android:layout_alignParentBottom="true"
android:layout_alignBottom="@+id/home_layout">
<com.admob.android.ads.AdView android:id="@+id/ad"
android:layout_width="fill_parent" android:layout_height="wrap_content"
myapp:backgroundColor="#000000" myapp:primaryTextColor="#FFFFFF"
myapp:secondaryTextColor="#CCCCCC"
myapp:keywords="words" />
</LinearLayout>
</RelativeLayout>
Leider befinden sich die Zoom-Steuerelemente in meiner MapView auf der ersten Registerkarte über der AdView. Gibt es ein einfaches Layout, das ich übersehe? Denn ich kann das TabWidget dazu bringen, den Inhalt für die Höhe zu wrap_content oder die AdView für die Höhe zu wrap_content, aber nur, wenn sie über die "@Android:id/tabcontent" gehen.
Alles, was unterhalb des Tab-Inhalts liegt, wird von der MapView gefressen.
Danke