在此链接中:如何以编程方式应用样式?
凯文格兰特对这个问题进行了解释我的问题与他的代码是上下文部分.确切地说:
ctv = new CustomView(context, R.attr.tabStyleAttr);
Run Code Online (Sandbox Code Playgroud)
在这段代码中它说:上下文无法解析为变量
我想将特定样式应用于选项卡,这就是设置主题对我不起作用的原因.我当然也欢迎任何替代我的问题.
我尝试更改操作栏选项卡的背景颜色,指示器颜色和文本颜色.
@Override
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction)
{
CustomView ctv;
ctv = new CustomView(this, R.attr.tabStyleAttr);
tab.setCustomView(ctv);
mViewPager.setCurrentItem(tab.getPosition());
}
Run Code Online (Sandbox Code Playgroud)
styles.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.Ab" parent="@android:style/Theme.Holo.Light">
<item name="android:actionBarStyle">@style/abStyle</item>
<item name="@attr/actionBarTabStyle">@style/tabStyle</item>
<item name="android:actionBarTabTextStyle">@style/tabTextColor</item>
</style>
<style name="abStyle" parent="@android:style/Widget.Holo.Light.ActionBar.Solid">
<item name="android:background">@drawable/ab_solid_style</item>
<item name="android:backgroundStacked">@drawable/ab_stacked_solid_style</item>
<item name="android:backgroundSplit">@drawable/ab_bottom_solid_style</item>
<item name="android:height">100dp</item>
</style>
<style name="tabStyle" parent="@android:style/Widget.Holo.Light.ActionBar.TabView">
<item name="android:background">@drawable/tab_indicator_ab_style</item>
</style>
<style name="tabTextColor" parent="@android:style/Widget.Holo.Light.ActionBar.TabText">
<item name="android:textColor">@android:color/white</item>
</style>
</resources>
Run Code Online (Sandbox Code Playgroud)
MainActivity.java(onCreate)
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Create the …Run Code Online (Sandbox Code Playgroud) android android-viewpager android-tabs android-actionbar-compat