Android:TabWidget的突出显示选项卡在HTC Sense上无法读取

时间:2010-09-05 21:10:58

标签: android layout colors tabwidget htcsense

在我的Android应用程序中,我使用TabWidget而没有任何特殊的自定义。我希望Android能够处理特定的外观,如果你将Android 1.6与2.1进行比较,这样可以正常工作。通过使用TabWidget,相同的代码会导致不同形式的选项卡,因为SDK定义了如何绘制它。 以下是2.1的例子:

alt text

因此,突出显示的标签为灰色,字体为白色,您可以很好地阅读。

但是,如果你有HTC Sense,它看起来像这样: alt text

图片并不是那么好,但只要相信我白色背景上的白色文字并不是那么容易阅读...

我的问题是:

1)为什么Android会在白色文本上创建一个白色的TabWidget?我从未定义文本颜色或背景颜色,因此系统应该选择合理的颜色。

2)我认为其他TabWidgets在HTC Sense上看起来很好,因为否则它将是一个非常大的流行问题。那么为什么我的TabWidget有这个问题而不是其他问题。

3)如何在不改变非Sense设备外观的情况下解决此问题?

正如我所说,我没有以任何方式自定义TabWidget。这是我的定义:

<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"
    android:background="@android:color/black"
    >
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        >

        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            />
        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:padding="0dp"
            >
      <ScrollView 
            android:id="@+id/shortenerScrollView"
            android:layout_height="fill_parent" 
            android:layout_width="fill_parent"
            android:background="@android:color/black"
            android:fadingEdge="horizontal"
            >

因此,除了将黑色定义为应用程序的一般背景颜色外,还没有明确的颜色或样式定义。唯一的例外可能是我正在为TabHost和TabWidget使用标准的Android ids。

/编辑: 这是onCreate方法中选项卡的定义:

th = getTabHost();
th.addTab(th.newTabSpec("shortener").setIndicator(getString(R.string.tabShortenerName),
        res.getDrawable(R.drawable.url_zip)).setContent(R.id.shortenerScrollView));

该类扩展了TabActivity。

/编辑2: 提出白色白色文本的设备是运行Android 2.1顺便说一句的HTC Legend。

/编辑3: dream3r是对的。将targetSdk值更改为4对我来说也是一招(之前,它已设置为6)!我真的不明白,但我现在可以忍受。 :)

以下是现在的样子: alt text

1 个答案:

答案 0 :(得分:4)

您是否在android:targetSdkVersion

中设置了AndroidManifest.xml?

我使用示例应用程序进行了一些测试,如果我将targetSdkVersion设置为大于4的值,则会出现同样的问题。