6

我有一个针对 1.5 框架并使用默认浅色主题的应用程序。使用带有此主题的选项卡小部件时,选项卡图像几乎不可见,并且除了当前活动的选项卡外,几乎无法辨别选项卡标题。

在默认的深色主题中,这些选项卡非常清晰,但这不是我非常满意的解决方案。有没有我可以设置的简单设置,设置选项卡小部件以更好地显示浅色主题,或者我是否必须手动篡改图像和文本样式?

4

4 回答 4

10

它不漂亮,但你可以在你的标签活动中试试这个。

// light theme support
final TabHost tabHost = getTabHost();
tabHost.setBackgroundColor(Color.WHITE);
tabHost.getTabWidget().setBackgroundColor(Color.BLACK);

// hack to set font size
LinearLayout ll = (LinearLayout) tabHost.getChildAt(0);
TabWidget tw = (TabWidget) ll.getChildAt(0);

// first tab
RelativeLayout rllf = (RelativeLayout) tw.getChildAt(0);
lf = (TextView) rllf.getChildAt(1);
lf.setTextSize(21);
lf.setPadding(0, 0, 0, 6);

// second tab
RelativeLayout rlrf = (RelativeLayout) tw.getChildAt(1);
rf = (TextView) rlrf.getChildAt(1);
rf.setTextSize(21);
rf.setPadding(0, 0, 0, 6);

/res/values/colors.xml 应该有

<resources>
    <drawable name="black">#ff000000</drawable>
    <drawable name="white">#ffffffff</drawable>
</resources>

AndroidManiest.xml 应该有

<application android:theme="@android:style/Theme.Light">

如果您想做更疯狂的事情,请尝试http://ezmobile.wordpress.com/2009/02/02/customized-android-tabs/

于 2009-12-19T07:46:40.857 回答
2

这是一个错误;您可以在问题跟踪器中报告它吗?

AFAIK,您自定义文本和图像样式的解决方法听起来不错。

同样值得注意的是,2.0 中的标签小部件似乎没有轻量级的样式。

于 2009-12-15T20:50:16.930 回答
2

通过使用 hierarchyviewer 工具,我在选项卡中找到了 textview 的 android id。更改文本属性(包括颜色)的更好方法是执行以下操作...

TabWidget tw = (TabWidget)tabHost.findViewById(android.R.id.tabs);
View tabView = tw.getChildTabViewAt(0);
TextView tv = (TextView)tabView.findViewById(android.R.id.title);
tv.setTextSize(20);
于 2010-12-28T06:42:46.160 回答
2

解决布局中颜色/对比度问题的一种非常简单的方法:

<TabWidget
   android:id="@android:id/tabs"
   android:background="#FF000000"
   android:padding="2dp"

这会将 TabWidget 的背景设置为黑色并添加一点填充,以便您与黑色背景下的选项卡形成对比。它并不完美,但适用于 1.5、2.2、明暗主题。

于 2011-05-06T20:43:01.777 回答