2017-01-31 117 views
0

我有一個活動,主題如下:Theme.AppCompat.Light.DarkActionBar。其結果是,在動作條標題「更多」選項菜單項都是白色的,因爲我希望:更改操作欄微調主題

enter image description here

但是,正如你從截圖中可以看到,下拉菜單有黑色背景。我希望下拉菜單具有灰色背景(請參見下面的屏幕截圖)。

我注意到,在下拉菜單中的風格是關係到活動的總體風格,例如,如果活動樣式更改爲:Theme.AppCompat.Light,那麼現在這個樣子:

enter image description here

這正是我正在尋找的風格,但正如你可能已經注意到的那樣,操作欄標題和「更多」選項現在是黑色的,這給出了這種主題有意義,但不再是我需要。

現在,我知道有幾種方法可以解決這種情況:第一種方法根本不會使用導航模式列表,因爲它已經被棄用了,另一種方法是使用Toolbar並且有一個它內部有Spinner,均爲風格。但在走這條路線之前,我想確保也許有一個更簡單的方法。

我想有一個從Theme.AppCompat.Light延伸的自定義主題:

<style name="LightTheme" parent="Theme.AppCompat.Light" /> 

,然後用它來創建充氣下拉菜單時主題背景:

Context context = new ContextThemeWrapper(this, R.style.LightTheme); 
CustomAdapter adapter = new CustomAdapter(context); 

ActionBar actionBar = getSupportActionBar(); 
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); 
actionBar.setListNavigationCallbacks(adapter, null); 

但遺憾的是沒有效果。

那麼,有沒有辦法可以改變下拉菜單的風格而不影響其他組件,例如:操作欄?

回答

1

您始終可以在您的應用程序的style.xml內主題工具欄屬性。我會建議使用一個無操作欄樣式,在您的工具欄中可以設置樣式,但由於您沒有使用它,因此您可以直接在主題中設置樣式。

對於微調的風格,你可以在你的主應用程序的主題或特定補充一點:

<item name="android:spinnerStyle">@style/Theme.AppCompat.Light</item> <item name="spinnerStyle">@style/Theme.AppCompat.Light</item>

對於彈出框的形式:

<item name="popupTheme">@style/ThemeOverlay.AppCompat.Light</item>

+0

完美!謝謝。 –