0

次のレイアウトは、タブコンテンツのビューを表示するために使用されます。ただし、admobが表示されると、framelayoutがダウンし、タブウィジェットが前面に表示されます。frameLayoutを常にtabwidgetの上に設定するにはどうすればよいですか?または同じ、framelayoutの下の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

これを引き起こしている可能性のある2つの問題がレイアウトにあります。まず、layout_heightTabHostのは親を埋めてはいけません。レイアウトの残りのスペース(広告で使用されないものすべて)を使用する場合は、FrameLayoutの場合と同様に、高さを0dipに設定し、layout_weighttoを1に設定します。また、RelativeLayoutにネストされたLinearLayoutがあるように見えますが、そのうちの1つは必要ありません。あなたがしようとしていることのために、私はRelativeLayoutを排除します。layout_weightTabWidgetの属性を削除することもできます。フレームを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 に答える