2016-10-10 77 views
1

是否有可能以編程方式檢測菜單何時溢出?如何檢測菜單項溢出?

我的意圖是讓菜單項始終可見(SHOW_AS_ACTION_ALWAYS),除非它會導致其他項溢出,在這種情況下,根本不顯示菜單項。那就是:

if (overflowed) actionBarMenu.removeItem(id); 

回答

1

你不是說那裏此菜單出現,所以我就放棄,你可以用工具欄做什麼的例子。你需要做的是從Toolbar獲得參考ActionMenuView,然後調用isOverflowMenuShowing就可以了,這樣的事情:

private boolean isOverflowShowing(Toolbar toolbar) { 
    if(toolbar == null) { 
     return false; 
    } 

    for(int i = 0; i < toolbarView.getChildCount(); i++) { 
     View v = toolbarView.getChildAt(i); 
     if(v instanceof ActionMenuView) { 
      return ((ActionMenuView)v).isOverflowMenuShowing(); 
     } 
    } 
    return false; 
} 

這是原油和骯髒 - 我沒有測試它 - 但它應該讓你開始。