在我的Android应用程序中,我使用TabWidget而没有任何特殊的自定义。我希望Android能够处理特定的外观,如果你将Android 1.6与2.1进行比较,这样可以正常工作。通过使用TabWidget,相同的代码会导致不同形式的选项卡,因为SDK定义了如何绘制它。 以下是2.1的例子:
因此,突出显示的标签为灰色,字体为白色,您可以很好地阅读。
但是,如果你有HTC Sense,它看起来像这样:
图片并不是那么好,但只要相信我白色背景上的白色文字并不是那么容易阅读...
我的问题是:
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)!我真的不明白,但我现在可以忍受。 :)
以下是现在的样子:
答案 0 :(得分:4)
您是否在android:targetSdkVersion
AndroidManifest.xml?
我使用示例应用程序进行了一些测试,如果我将targetSdkVersion
设置为大于4
的值,则会出现同样的问题。