[英]android action bar style (splitted style and menu item pressed)
我設置了操作欄的背景,但是在拆分模式下,背景不起作用。
我看到我必須設置這個:
<item name="android:backgroundSplit">@drawable/some_drowable</item>
但它在Api級別11中不起作用
還有其他方法嗎?
我還有一個關於操作欄樣式的問題,我想在按下操作欄圖標時更改其顏色(不是背景區域,而是替換圖標)。 我怎樣才能做到這一點 ?
首先,我不知道該怎么做。 但是第二,我可以幫助您。 一點也不難。
基本上,操作欄只是帶有菜單菜單選項條的菜單欄。
因此,它是在應用程序開始時通過調用來創建的
@Override
public boolean onCreateOptionsMenu(Menu menu) {
...
}
並且任何選擇的選項都會導致
@Override
public boolean onOptionItemSelected(MenuItem item) {
...
}
與用戶選擇的菜單項一起被調用。
但是,有第三種方法與選項菜單有關,這是您要用來更新操作的方法。 它稱為onPrepareOptionsMenu(Menu menu)
( link )。 在此方法中,允許更改使用onCreateOptionsMenu(...)
創建的菜單。
因此,借助此知識,您可以通過調用item.getItemId()
來檢查操作欄中輕擊了哪個操作,從而在onOptionsItemSelected(...)
為特定項目保持(全局)狀態。
現在,您將了解在操作欄上輕按了哪個操作以及您希望其處於的狀態。
但是等等,啟動應用程序時已經創建了操作欄。 那么,如何使它重新創建? 實際上很簡單。 您只需要調用invalidateOptionsMenu()
( link )即可使其無效。 這將導致Android重繪操作欄,並導致再次調用onCreateOptionsMenu(...)
-> onPrepareOptionsMenu(...)
的整個行。
現在,您擁有了所需的一切:
onOptionsItemSelected(...)
重繪操作欄時,可以更改操作欄上項目的圖標,以使其更新為所需狀態。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.