[英]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.