如何更改 Android 中 TabWidget 分隔线的颜色和/或可绘制内容?
我正在使用 TabLayout,并且我有用于我正在使用的选项卡的自定义图像,但对于我的一生,我无法弄清楚如何更改选项卡和选项卡内容之间的分隔线的颜色甚至图像。我尝试使用 setDividerDrawable(),但是当我在设置选项卡内容之前调用它时它会崩溃,而当我在设置选项卡内容之后调用它时它什么也不做。如果我能把它变成黑色就足够了,但到目前为止还没有任何效果。感谢您的任何指导。
I'm using a TabLayout and I have custom images for the tabs that I am using, but for the life of me I can't figure out how to change the color or even the image of the divider between the tabs and the tab content. I have attempted to use setDividerDrawable(), but it crashes when I call it before setting the tab content and just does nothing when I call it after. If I can just get it to be black that would be sufficient, but so far nothing has worked. Thanks for any guidance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你必须这样做:
tabHost.getTabWidget().setDividerDrawable(R.drawable.tab_divider);
其中 R.drawable.tab_divider 是资源目录中的图像。
但关键是您必须在将任何选项卡添加到选项卡主机之前执行此操作。
我的选项卡初始化代码如下所示:
...
You have to do this:
tabHost.getTabWidget().setDividerDrawable(R.drawable.tab_divider);
Where R.drawable.tab_divider is an image in your resources directory.
But the key is you have to do that BEFORE you've added any tabs to the tab host.
My tab initialization code looks like:
...
定义分隔符的更好方法是从 XML 标记中创建 if:
因此,您可以仅从标记中定义可绘制对象。
请注意,您必须使用
android:divider
和android:showDividers="middle"
在选项卡之间放置分隔线。有关更多信息,请阅读规范并注意从 LinearLayout 继承的属性 - google 中的文档
The better way to define a divider is to make if from your XML markup:
So, you can define a drawable just from the markup.
Mind that you must use
android:divider
along withandroid:showDividers="middle"
to place the dividers between tabs.For more read the spec and pay attention to properties inherited from LinearLayout - docs in google