我将一种风格应用于两种活动。 MainActivity.java
有工具栏设置而不是操作栏,因此,我在主题样式中有以下行来隐藏操作栏:
<item name="windowActionBar">false</item>
在另一项活动中,我启用了操作栏:
final ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayShowHomeEnabled(true);
actionBar.setDisplayHomeAsUpEnabled(true);
但是这会返回 NOException 错误。
我试过以下但没有帮助:
actionBar.show();
样式:
<style name="BrownTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/brown</item>
<item name="colorPrimaryDark">@color/dark_brown</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="buttonStyle">@color/brown</item>
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
精化: 我正在使用两种活动的风格。第一个活动有自己的工具栏而不是默认操作栏,第二个活动有操作栏。如果我从样式中删除然后我无法运行第一个活动,如果我放,那么我就无法运行第二个活动。我想在第二个活动中以编程方式启用它。
是否有可能以编程方式更改样式项属性?或任何覆盖方法绕过我在样式项属性中的内容?
答案 0 :(得分:0)
getSupportActionBar().hide();
隐藏
和getSupportActionBar().show();
显示。
答案 1 :(得分:0)
我使用自定义工具栏修复了这两项活动。
style.xml
现在有以下主题:
<style name="BrownTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/brown</item>
<item name="colorPrimaryDark">@color/dark_brown</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="buttonStyle">@color/brown</item>
</style>
在第二项活动(或所有其他活动)中:
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
工具栏布局(app_bar_main.xml):
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay" />
</android.support.design.widget.AppBarLayout>
活动布局:
<include
layout="@layout/app_bar_main"
android:layout_width="match_parent"
android:layout_height="match_parent" />