簡體   English   中英

android操作欄樣式(按下拆分樣式和菜單項)

[英]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(...)的整個行。

現在,您擁有了所需的一切:

  1. 確定用戶已點擊了哪些操作( onOptionsItemSelected(...)
  2. 您想保持什么狀態
  3. 如何重畫動作欄

重繪操作欄時,可以更改操作欄上項目的圖標,以使其更新為所需狀態。

暫無
暫無

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

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