簡體   English   中英

如何以編程方式更改工具欄樣式? 當我嘗試更改彈出菜單而不是工具欄時

[英]How to change toolbar style programmatically? When I try to do this popup menu changes instead of the toolbar

我的應用程序有一個自定義工具欄,但在其中一項活動中,我想以編程方式更改工具欄的樣式。 這是我想以編程方式應用的工具欄樣式。

<style name="toolbarStyle" parent="ThemeOverlay.AppCompat.Dark">
    <item name="android:background">@color/teal_200</item>
    <item name="colorAccent">@android:color/white</item>
</style>

我使用此代碼以編程方式更改工具欄樣式

toolbar.getContext().setTheme(R.style.toolbarStyle);

問題是,彈出主題發生了變化,而不是工具欄。

如何解決?

使用此代碼:

toolbar.getContext().setTheme(R.style.toolbarStyle);

set 是整個Activity的主題,因為您已經在ActivityContext上調用了setTheme()

主題旨在用於整個應用程序,而不僅僅是用於單個 UI 元素。 您只想使用樣式來設置這個 UI 元素的樣式。

如果您有自定義工具欄,那么您應該只在自定義工具欄上創建方法來調整這些 styles 並從您的Activity調用這些方法。

你在活動還是碎片化? 如果活動,請嘗試 getSupportActionBar() 以獲取使用的工具欄

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM