我对 Android 很陌生(比如 2 天),但我对其他布局工具包很有经验。我正在尝试将 AdView 放在 TabHost 下方,似乎我可以让 TabWidget 或 AdView 正确显示,但不能同时显示两者。
首先,这是我想要完成的 ASCII 艺术版本:
------------------------------------------ | 选项卡 1 | 选项卡 2 | ------------------------------------------ | 选择选项卡 1 时的 MapView | | | | | | | | | | | | | ------------------------------------------ | 无论哪个标签都保留的 AdView | ------------------------------------------
如您所见,我试图在 TabWidget 或 FrameLayout之外获取 AdView。我希望它低于整个 tabhost 内容。
这是我在添加 AdView 之前得到的布局:
<?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>
现在,我尝试了几个不同的技巧来添加 AdView,例如http://www.spencerelliott.ca/blogs/blog-android-menu。这是我想出的最佳布局:
<?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>
不幸的是,在那一个中,我在第一个选项卡中的 MapView 将缩放控件放在了 AdView 的顶部。我缺少一些简单的布局吗?因为我可以让 TabWidget 以 wrap_content 为高度,或让 AdView 以 wrap_content 为高度,但只有当它们超出“@android:id/tabcontent”时。
选项卡内容下方的任何内容都会被 MapView 吃掉。
谢谢