我正在使用 AppCompatActivity 和一些操作栏按钮,在我的应用的第一个活动中。
来自第二项活动我正在使用滑动标签。
我的theme.xml(主题1)
<style name="CustomActionBarTheme" parent="Theme.AppCompat">
<!-- theme customizations -->
<item name="colorPrimary">@color/easy</item>
<item name="colorAccent">@color/easy</item>
<!-- Size Of Action bar-->
<item name="actionBarSize">55dp</item>
</style>
第一项活动工作正常。使用上面的主题但是
我的滑动标签页中的错误
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.slidingtab}:
java.lang.IllegalStateException: This Activity already has an action bar supplied by the window decor.
Do not request Window.FEATURE_ACTION_BAR and set windowActionBar to false in your theme to use a Toolbar instead.
我的theme.xml(主题2)
<style name="CustomActionBarTheme" parent="Theme.AppCompat">
</style>
<style name="MyTheme.NoActionBar">
<!-- Both of these are needed -->
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
如果我使用上述主题,滑动选项卡页面工作正常,但我的第一个活动显示NPE。
问题:
1.i想要第一个活动的自定义主题,
2.我还需要在第二个活动中滑动标签
如何解决这个问题,请帮助我。
编辑:1
添加了Oncreate方法
My Sliding Tab Oncreate
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.find_stores_0_tabview__landing);
// for ActionBar back button
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
// Initilization
// Creating The Toolbar and setting it as the Toolbar for the activity
toolbar = (Toolbar) findViewById(R.id.tool_bar);
setSupportActionBar(toolbar);
// Creating The ViewPagerAdapter and Passing Fragment Manager, Titles
// fot the Tabs and Number Of Tabs.
adapter = new ViewPagerAdapter(getSupportFragmentManager(), Titles,Numboftabs);
// Assigning ViewPager View and setting the adapter
pager = (ViewPager) findViewById(R.id.pager);
pager.setAdapter(adapter);
// Assiging the Sliding Tab Layout View
tabs = (SlidingTabLayout) findViewById(R.id.tabs);
tabs.setDistributeEvenly(true); // To make the Tabs Fixed set this true,
// This makes the tabs Space Evenly in
// Available width
// Setting Custom Color for the Scroll bar indicator of the Tab View
tabs.setCustomTabColorizer(new SlidingTabLayout.TabColorizer() {
@Override
public int getIndicatorColor(int position) {
return getResources().getColor(R.color.tabsScrollColor);
}
});
// Setting the ViewPager For the SlidingTabsLayout
tabs.setViewPager(pager);
// End OF OnCreate
}
答案 0 :(得分:1)
我建议你为他们定义不同的主题。
我觉得问题不是由Sliding TAB造成的, 再次检查您的代码。
你的第一个活动主题:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
</style>
你的第二个活动主题:
<style name="AppTheme2" parent="Theme.AppCompat.Light">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
</style>
在你的AndroidManifest.xml
中<activity android:name=".first Activity" android:theme="@style/AppTheme"/>
<activity android:name=".second Activity" android:theme="@style/AppTheme2"/>