我使用的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. 如何更改Android DatePicker对话框的“分隔线”颜色
- 5. 更改TabHost/TabWidget的颜色
- 6. 更改Android TabWidget底部栏颜色
- 7. 如何在android中加载时更改默认的tabwidget颜色?
- 8. 如何更改实习生Android可绘制的颜色?
- 9. 在Android中更改分隔线的颜色
- 10. 如何更改NSSplitView中分隔线的颜色?
- 11. 如何在iOS中更改UISplitView的分隔线颜色
- 12. 如何动态更改可绘制的颜色和形状?
- 13. 在Android中更改分隔线颜色PreferenceActivity
- 14. 如何在android中更改微调器的分隔线的颜色?
- 15. 如何在pygame中绘制一条线并更改颜色?
- 16. 暂时更改可绘制颜色
- 17. 如何更改颜色UINavigation栏的分隔线
- 18. 如何更改PreferenceFragment警报对话框的分隔线颜色
- 19. 如何更改操作栏的分隔线颜色?
- 20. 如何更改Spinner的分隔线颜色?
- 21. 根据Android中的SeekBar更改可绘制颜色
- 22. Android GridView绘制分隔线
- 23. 更改分隔线颜色Android DatePicker对话框
- 24. 如何更改圆形ProgressDialog的颜色而不设置可绘制或更改颜色重音
- 25. 如何改变使用matplotlib和python绘制多线的颜色?
- 26. TabWidget changr底线颜色
- 27. 如何更改可绘制集的颜色为android:background?
- 28. 更改Wordpress中多行文本分隔线的颜色?
- 29. 如何更改警报对话框标题分隔线颜色android
- 30. 如何更改微调控件的边框和分隔线颜色
答案是好的,但我怎样才能用相同的代码设置颜色,而不是图像。谢谢! – benoffi7 2014-01-25 16:18:40