我正在尝试在ActionBar上自定义Tabs。我只想将标签对齐到手机屏幕,使其可以伸展各种屏幕。但我得到的只是:
我用于主题的代码是:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MyTheme" parent="@android:style/Theme.Holo.Light">
<item name="android:actionBarTabTextStyle">@style/MyActionBarTabTextStyle</item>
</style>
<style name="MyActionBarTabTextStyle" parent="@android:style/Widget.Holo.Light.Tab">
<item name="android:textSize">14dip</item>
<item name="android:padding">0dip</item>
</style>
</resources>
是否可以减少字体并摆脱那些蓝线?
提前感谢您的帮助。
P.S。:按钮也很奇怪。这不是文本(虽然它应该是......)
答案 0 :(得分:13)
修改:在支持库中使用ActionBarCompat
。
我建议你使用杰克沃顿的ActionBarSherlock,原因有两个:
ActionBarSherlock是兼容性库的扩展,便于在所有Android版本中使用操作栏。这意味着在预HoneyComb版本的Android上运行应用程序的用户也可以使用ActionBar
进行导航。这对于用户(因为ActionBar
非常棒!)和您(因为您不必担心根据ActionBar
是否将应用程序的控制流分离是一件好事。例如,如果没有预先与HoneyComb兼容的ActionBar
,您可能不得不担心为单个屏幕创建多个Activity
...一个针对{{{ 1}},以及可以在预HoneyComb设备上运行的那个。
使用ActionBarSherlock,styling您的ActionBar很简单!我可以详细介绍如何做到这一点,但是图书馆已经有很多sample code,它说明了你在上面描述的内容。
安装/使用该库非常简单,与使用Android SDK中提供的常规ActionBar
几乎完全相同(主要是调用ActionBar
而不是getSupportActionBar()
) 。如果您有任何疑问,请告诉我。
P.S。另请注意,getActionBar()
提供了ViewPagerExtensions库提供的所有功能以及更多功能。我肯定会建议使用前者而不是后者。
答案 1 :(得分:7)
有一个全新的工具可以为操作栏生成正确的9patch图像:http://jgilfelt.github.com/android-actionbarstylegenerator/
答案 2 :(得分:4)
我发现使用标签的样式指南与蜂窝非常不一致,只需要为想要的自定义视图充气就容易得多。
Fragment serivceFrag = new ServicesFragment();
Tab serviceTab = bar.newTab();
TextViewPlus serviceTabTextView =(TextViewPlus)getLayoutInflater().inflate(R.layout.tab_item_layout, null);
serviceTabTextView.setText(servicesLabel);
serviceTab.setCustomView(serviceTabTextView);
serviceTab.setTabListener(new TabListenerFragment(serivceFrag,"Service",R.id.MainInfoPaneFragment));
bar.addTab(serviceTab);
这对我来说简单得多,
答案 3 :(得分:4)
更改为:
<style name="MyActionBarTabTextStyle" parent="@android:style/Widget.Holo.ActionBar.TabText">
<item name="android:textSize">14dip</item>
<item name="android:padding">0dip</item>
</style>
答案 4 :(得分:1)
我认为你是从错误的风格继承而来,试试:
<style name="MyActionBarTabTextStyle" parent="android:TextAppearance.Holo.Widget.ActionBar.Title">
<item name="android:textSize">14sp</item>
<item name="android:padding">0dip</item>
</style>
编辑:另外,请确保使用sp而不是dip来获取字体大小(14sp)
答案 5 :(得分:1)
我强烈建议您使用ViewPagerExtensions library,它会为您提供5种不同风格的标签供您选择,还有您需要在纵向和横向填充标签的问题,每个屏幕尺寸的颂歌已经解决了这个图书馆。
顺便说一下,如果你查看一下图书馆的代码,你可以自己轻松地主题化。
此外,如果您在使用片段页面实现此功能时遇到问题,请查看actionbarsherlock-tabs-multi-fragments
答案 6 :(得分:0)
您可以使用setCustomView方法。