2016-10-01 131 views
0

我正在將一種風格應用於兩項活動。 MainActivity.java有工具欄設置,而不是行動起來吧,所以,我在主題風格以下行來隱藏動作條:如何在Android中以編程方式顯示/隱藏windowActionBar?

<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

我使用自定義工具欄解決了這兩個活動。

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" /> 
0

getSupportActionBar().hide();隱藏

getSupportActionBar().show();顯現。

+0

我試過這個,但在第二個活動中隱藏時沒有起作用。 –

+0

您是否試過將其從樣式中刪除 –

+0

我正在使用兩種活動的樣式。第一個活動有自己的工具欄,而不是默認的操作欄,第二個活動有操作欄。如果我從風格中刪除,那麼我不能運行第一個活動,如果我放,那麼我不能運行第二個活動。我想在第二個活動中以編程方式啓用它。 –

相關問題