我使用的TabLayout,我有我使用的标签的自定义图像,但对于我的生活,我无法弄清楚如何改变颜色,甚至在标签和图像之间的分隔线和标签内容。我试图使用setDividerDrawable(),但在设置选项卡内容之前调用它时会崩溃,而在我调用它之后什么都不做。如果我能把它变成黑色就足够了,但到目前为止没有任何工作。感谢您的任何指导。如何更改Android中TabWidget分隔线的颜色和/或可绘制?
5
A
回答
9
您必须这样做: tabHost.getTabWidget()。setDividerDrawable(R.drawable.tab_divider);
其中R.drawable.tab_divider是资源目录中的映像。
但是,关键是你必须这样做,然后你已经添加到标签主机的任何标签。
我的标签初始化代码如下所示:
private void initializeTabs(int curTab) {
this.tabHost = getTabHost();
tabHost.clearAllTabs();
TabSpec ts1, ts2, ts3, ts4, ts5;
// tab separator
tabHost.getTabWidget().setDividerDrawable(R.drawable.tab_divider);
ts1 = this.setupTab(new TextView(this), tabHost, R.drawable.browse_tab_normal,
mResources.getString(R.string.Browse));
ts2 = this.setupTab(new TextView(this), tabHost, R.drawable.search_tab_normal,
mResources.getString(R.string.Search));
ts3 = this.setupTab(new TextView(this), tabHost, R.drawable.postad_tab_normal,
mResources.getString(R.string.Post));
ts4 = this.setupTab(new TextView(this), tabHost, R.drawable.watchlist_tab_normal,
mResources.getString(R.string.WatchList));
ts5 = this.setupTab(new TextView(this), tabHost, R.drawable.managead_tab_normal,
mResources.getString(R.string.Login));
// intents
ts1.setContent(new Intent().setClass(this, BrowseTabActivity.class));
ts2.setContent(new Intent().setClass(this, SearchTabActivity.class));
ts3.setContent(new Intent().setClass(this, PostAdTabActivity.class));
ts4.setContent(new Intent().setClass(this, WatchlistTabActivity.class));
ts5.setContent(new Intent().setClass(this, LoginTabActivity.class));
tabHost.addTab(ts1);
tabHost.addTab(ts2);
tabHost.addTab(ts3);
tabHost.addTab(ts4);
tabHost.addTab(ts5);
...
0
更好的方式来定义一个分频器使如果来自您的XML标记:
<TabWidget
android:layout_width="match_parent"
android:showDividers="middle"
android:divider="@drawable/design_tab_divider">
</TabWidget>
所以,你可以从标记中定义一个drawable。 请注意,您必须使用android:divider
以及android:showDividers="middle"
将标签之间的分隔符。 更多的阅读规格,并注意从LinearLayout继承的属性 - docs in google
相关问题
- 1. 更改LinearLayout中分隔线的颜色
- 2. Android更改形状可绘制颜色
- 3. 如何更改Android ListView分隔线的颜色?
- 4. 更改TabHost/TabWidget的颜色
- 5. 更改Android TabWidget底部栏颜色
- 6. 如何在android中加载时更改默认的tabwidget颜色?
- 7. 如何更改实习生Android可绘制的颜色?
- 8. 在Android中更改分隔线的颜色
- 9. 如何动态更改可绘制的颜色和形状?
- 10. 根据Android中的SeekBar更改可绘制颜色
- 11. Android GridView绘制分隔线
- 12. 如何在pygame中绘制一条线并更改颜色?
- 13. 如何更改操作栏的分隔线颜色?
- 14. 如何更改颜色UINavigation栏的分隔线
- 15. 更改分隔线颜色Android DatePicker对话框
- 16. 如何更改可绘制集的颜色为android:background?
- 17. 如何更改警报对话框标题分隔线颜色android
- 18. 如何更改微调控件的边框和分隔线颜色
- 19. android绘制应用程序行一旦改变颜色先前绘制的所有线绘制了新颜色
- 20. 如何动态更改可绘制的<shape>的颜色? (Android)
- 21. iOS:如何更改UISplitViewController中分隔符的颜色?
- 22. 如何更改vscode中的滚动条分隔符颜色?
- 23. 如何更改Microsoft Chart Controls中的轴分隔线颜色(柱形图)
- 24. 颜色TabWidget
- 25. 如何更改facet_grid中的线条和色带颜色
- 26. 如何更改从pdf中绘制图像的亮度颜色?
- 27. 如何更改已在Windows中绘制InkStrokes的颜色通用
- 28. 如何更改DialogFragment标题背景颜色和底线颜色
- 29. Android:删除反射器中的分离器颜色可绘制
- 30. 如何更改Android中的seekbar颜色?
答案是好的,但我怎样才能用相同的代码设置颜色,而不是图像。谢谢! – benoffi7 2014-01-25 16:18:40