簡體   English   中英

動態啟用/禁用隱藏/取消隱藏Android ActionBar操作圖標

[英]dynamically enable/disable hide/unhide Android ActionBar action icon

我正在開發一個采用標准ActionBar的Android應用程序。
在某個屏幕上,我有一個有條件的過濾器圖標,
取決於所顯示數據的特征,例如某些數據是可過濾的
別人沒有。
我在動作欄上找不到任何方法,看起來可能是programmaticaly隱藏動作欄動作圖標的候選人。 如何啟用/禁用操作欄操作圖標?
要么
如何隱藏/取消隱藏動作欄動作圖標?

看看這個,它展示了如何在運行時更改菜單項。

http://developer.android.com/guide/topics/ui/menus.html#ChangingTheMenu

例如,您可以將菜單保存為onCreateOpionsMenu()內部Activity的成員變量,然后執行以下操作:

MenuItem item = mMenu.findItem(R.id.addAction);
item.doSomething()

當您想要更改特定菜單項上的內容時。

據我了解,您需要刪除左上角操作欄上顯示的圖標。

您可以使用以下簡單的代碼行完成此操作:

final ActionBar actionBar = getActionBar();     
actionBar.setDisplayShowTitleEnabled(false);

如果您想擺脫應用程序名稱,請嘗試:

actionBar.setDisplayShowHomeEnabled(false);

希望這可以幫助。

您可以通過覆蓋onPrepareOptionsMenu()方法來完成。 這是一個小例子

@Override
public boolean onPrepareOptionsMenu(Menu menu) {
    if (count < 1)
        menu.getItem(4).setEnabled(false); //disable menuitem 5
    if (!after)
    menu.getItem(1).setVisible(false); // invisible menuitem 2
    invalidateOptionsMenu();
    return true;
}

但是,只有在單擊操作欄中的菜單按鈕時才會調用此方法。 如果操作欄上有任何圖標(菜單按鈕除外),單擊該圖標將不會觸發OnPrepareOptionsMenu()方法。 為了手動觸發此方法,您可以在方法中使用invalidateOptionsMenu()。 像這樣

void yourMethod () {
...
invalidateOptionsMenu();
...
}

你也可以試試這個:

final ActionBar actionBar= getActionBar();
actionBar.hide();

它會隱藏圖標和標題。

不要忘記你的導入:

import android.app.ActionBar;

祝好運

試試ActionBar.getActionBar.hide();

暫無
暫無

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

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