【问题标题】:Android TabWidget White Space IssueAndroid TabWidget空白问题
【发布时间】:2013-05-02 06:59:06
【问题描述】:

我正在处理 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 和选项卡之间有任何分隔空间(可以这样做吗?)

请任何人建议我如何摆脱这个空白。

【问题讨论】:

  • 您是否尝试过将TabWidget 的高度设置为类似于框架布局的0dp?此外,如果您的目标是 API 8 或更高版本,则应使用 match_parent 而不是填充。

标签: java android xml tabs android-widget


【解决方案1】:

您显示的输出很可能表明 Margin/Padding 错误,而不是布局错误。您的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 的背景颜色设置为蓝色 - 那么您将看到蓝色穿过。所以修复边距/填充而不是试图隐藏它。

【讨论】:

    【解决方案2】:

    看起来您遇到了与我在项目中遇到的类似问题,请查看 this 项目并尝试实现可绘制的 xml 文件并为您的 TabWidget 提供此项目中给出的特定自定义尺寸。它肯定对你有用。

    【讨论】:

      【解决方案3】:

      从您的屏幕截图看来,您使用的是WebViewWebview 带有默认的marginpadding > 0。您可以通过覆盖WebView's body 标签或使用csspaddingmargin 设置为零。

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

      Remove unwanted white space in webview

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-11-12
        • 1970-01-01
        • 1970-01-01
        • 2010-11-21
        • 1970-01-01
        • 1970-01-01
        • 2011-02-02
        相关资源
        最近更新 更多