0

以下布局用于显示选项卡内容的视图。但是,当出现 admob 时,framelayout 会下降,并在前面显示 tabwidget。我怎样才能将 frameLayout 设置在 tabwidget 之上?或相同,在框架布局下方的 tabwidget。谢谢

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
              android:orientation="vertical"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              >


      <com.google.ads.AdView android:id="@+id/adView"
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
                         ads:adUnitId="xxx"
                         ads:adSize="SMART_BANNER"
                         ads:testDevices="TEST_EMULATOR, xxx"
                         ads:loadAdOnCreate="true"/>   

<TabHost 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/tabhost" 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

      <RelativeLayout       
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/mainLayout">


        <LinearLayout  
            android:id="@+id/mainLayout"
            android:orientation="vertical"
            android:layout_width="fill_parent" 
            android:layout_height="fill_parent"
            >

                    <FrameLayout 
                        android:id="@android:id/tabcontent"
                        android:layout_width="fill_parent" 
                        android:layout_height="0dip"
                        android:layout_weight="1" 
                        android:scrollbars="none">
                    </FrameLayout>

            <TabWidget 
                android:id="@android:id/tabs"
                android:layout_width="fill_parent" 
                android:layout_height="wrap_content"
                android:layout_weight="0"/>

        </LinearLayout>         
    </RelativeLayout>
</TabHost> 

</LinearLayout>

在此处输入图像描述

4

2 回答 2

1

我在您的布局中看到两个可能导致此问题的问题。首先,layout_height您的 TabHost 不应该是填充父级。如果您希望它占用布局中的剩余空间(广告未占用的所有空间),请将高度设置为 0dip 和layout_weight1,就像您对 FrameLayout 所做的那样。此外,看起来您有一个嵌套在 RelativeLayout 中的 LinearLayout,其中一个不是必需的。对于您正在尝试的内容,我会消除RelativeLayout。您可能还想去掉layout_weightTabWidget 上的属性。将 Frame 设置为 1 表示您希望它拉伸以填充父级中剩余的所有空间,并且应该为您提供所需的结果。小部件的重量可能是导致重叠的原因。希望这可以帮助。

于 2012-07-05T20:30:56.910 回答
0

应该是这样的……

<TabHost>start

    <LinearLayout>start

        <com.google.ads.AdView
            start
            end />

        <FrameLayout>start

            <LinearLayout>start
            <LinearLayout>end

        </FrameLayout>end

        <TabWidget>start
        </TabWidget>end

    </LinearLayout>end

</TabHost>end

如果你想让谷歌使用不同的标签添加更改,那么上面的方法是最好的,但如果你不这样做,那就让它像这样......

<LinearLayout>start

    <com.google.ads.AdView
        start
        end />

    <TabHost>start

        <LinearLayout>start

            <FrameLayout>start

                <LinearLayout>start
                <LinearLayout>end

            </FrameLayout>end

            <TabWidget>start
            </TabWidget>end

        </LinearLayout>end

    </TabHost>end

</LinearLayout>end

还要将选项卡小部件设置为 android:layout_marginBottom="-4dp" 以防万一。

于 2012-07-05T21:33:53.467 回答