Android TabWidget白色空间问题

时间:2013-05-08 06:25:59

标签: java android xml tabs android-widget

我正在使用TabWidget,我在TabActivity和Tabs之间得到一个空格。

我不知道如何删除这个空格请任何人帮我解析如何将其删除,我的tab_main.xml如下:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

<TabHost
    android:id="@android:id/tabhost"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >

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

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

我尝试将TabWidget的背景颜色设置为android:color:transparent但是Activity和Tab之间仍然存在相同的空白区域。

我不希望我的Activity和Tabs之间有任何分隔空间(是否可以这样做?)

任何人都可以建议我如何摆脱这个空白区域。

enter image description here

3 个答案:

答案 0 :(得分:1)

您显示的输出最有可能表示边距/填充错误,而不是布局错误。您TabWidgetFrameLayout的余额可能会被您正在使用的整体主题继承。

以下情况最有可能解决问题(请注意额外的边距/填充样式):

        <FrameLayout
            android:layout_marginBottom="0dip"
            android:layout_paddingBottom="0dip"
            android:background="@android:color/holo_green_light"
            android:id="@android:id/tabcontent"
            ....
            .... />

        <TabWidget
            android:layout_marginTop="0dip"
            android:layout_paddingTop="0dip"
            android:background="@android:color/holo_blue_light"
            android:id="@android:id/tabs"
            ....
            .... />

你的FrameLayout也可以有任何具有边距/填充的嵌套组件,这反过来可能会导致空白区域。我已将android:background添加到FrameLayout和TabWidget中,只是为了帮助排除故障,如果它们之间有任何空白区域。

你说你已经尝试将TabWidget的背景颜色设置为透明 - 但它没有帮助,因为如果有边距 - 则底层活动的背景颜色在透明区域下方显示为白色。如果将整体RelativeLayout的背景颜色设置为蓝色 - 那么您将看到蓝色通过。因此,修复边距/填充而不是试图隐藏它。

答案 1 :(得分:0)

从您的屏幕截图中看起来您使用的是WebViewWebview附带默认marginpadding&gt; 0.您可以通过覆盖padding margin代码或使用WebView'sbodycss设置为零。

有关详细信息,请参阅以下SO问题的答案:

Remove unwanted white space in webview

答案 2 :(得分:0)

它看起来像你在我的项目中遇到类似的问题,查看this项目并尝试实现可绘制的xml文件,并为TabWidget提供给定的特定自定义维度在这个项目中。它肯定会对你有用。