Android的TabWidget在轻主题
题
我有定位到1.5框架和使用默认光主题的应用程序。当使用标签插件与此主题,标签图像是几乎不可见,并且选项卡字幕是完全不可能辨别,除了当前活动的选项卡。
在默认黑暗的主题这些标签来通过很清楚,但是这不是一个解决方案,我会非常高兴。有一个简单的设置,我可以设置,即设置在光的主题更好的可见性的标签控件,或者我将有图片和文字风格手工篡改?
解决方案
这是不漂亮,但你可以在你的标签活动试试这个。
// 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/
其他提示
通过使用hierarchyviewer工具我发现在标签中的TextView的机器人的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);
一个非常简单的方法来解决在布局中的颜色/对比度问题:
<TabWidget
android:id="@android:id/tabs"
android:background="#FF000000"
android:padding="2dp"
此设置TabWidget黑色的背景,所以你必须用黑背景的标签对比增添了些许填充。它并不完美,但作品1.5,2.2,光明与黑暗的主题。
不隶属于 StackOverflow