2012-07-05 74 views
0

以下佈局用於顯示tabcontent上的視圖。但是,當admob出現時,framelayout會在前面獲取tabwidget。我怎麼能設置frameLayout總是上面tabwidget ??或者framelayout下方的tabwidget相同。謝謝android佈局get 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> 

enter image description here

回答

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」以防萬一。

1

我看到你的佈局兩個問題可能會造成這一點。首先,您的TabHost的layout_height不應填寫父項。如果您希望它佔據佈局中的剩餘空間(廣告未佔用的所有內容),請將高度設置爲0dip,將layout_weight設置爲1,就像您對FrameLayout所做的一樣。此外,它看起來像一個嵌套在RelativeLayout中的LinearLayout,其中一個不是必需的。對於你想要的,我會消除RelativeLayout。您還可能想要擺脫TabWidget上的layout_weight屬性。將「框架」設置爲1表示您希望將其拉伸以填充父級中剩餘的所有空間,並且應該爲您提供所需的結果。小部件的重量可能是導致重疊的原因。希望這可以幫助。

+0

http://stackoverflow.com/questions/26402748/tabhost-android-viewbadger-badge-issue 看看@MattDavis我面臨的問題,我無法解決該錯誤 – 2014-10-24 19:12:05