下面列出了怎么用android.support.annotation.MenuRes的API类实例代码及写法,或者点击链接到github查看源代码。
/**
* Provides a mechanism for switching between any number of Menus.
*
* @param newMenuResId id of the menu that you wish
* to switch to. Eg: R.menu.new_menu_id
*/
public void switchMenuTo(@MenuRes int newMenuResId) {
if (newMenuResId < 1) {
Log.e(TAG, "Could not switch to new menu: passed menuResourceId was invalid.");
return;
}
mMenu = new SublimeMenu(newMenuResId);
inflateMenu(newMenuResId);
mMenu.setCallback(new SublimeMenu.Callback() {
public boolean onMenuItemSelected(SublimeMenu menu, SublimeBaseMenuItem item,
OnNavigationMenuEventListener.Event event) {
return SublimeNavigationView.this.mEventListener != null
&& SublimeNavigationView.this
.mEventListener.onNavigationMenuEvent(event, item);
}
});
mMenu.setMenuPresenter(getContext(), mPresenter);
}
public void inflateMenu(@MenuRes int menuRes) {
if(menuRes == 0) return;
if (isInEditMode()) return;
getActivity().getMenuInflater().inflate(menuRes, mActionMenu.getMenu());
XmlResourceParser parser = null;
try {
//noinspection ResourceType
parser = getResources().getLayout(menuRes);
AttributeSet attrs = Xml.asAttributeSet(parser);
parseMenu(parser, attrs);
} catch (XmlPullParserException | IOException e) {
// should not happens
throw new InflateException("Error parsing menu XML", e);
} finally {
if (parser != null) parser.close();
}
}
/**
* Provides a mechanism for switching between any number of Menus.
*
* @param newMenuResId id of the menu that you wish
* to switch to. Eg: R.menu.new_menu_id
*/
public void switchMenuTo(@MenuRes int newMenuResId) {
if (newMenuResId < 1) {
Log.e(TAG, "Could not switch to new menu: passed menuResourceId was invalid.");
return;
}
mMenu = new SublimeMenu(newMenuResId);
inflateMenu(newMenuResId);
mMenu.setCallback(new SublimeMenu.Callback() {
public boolean onMenuItemSelected(SublimeMenu menu, SublimeBaseMenuItem item,
OnNavigationMenuEventListener.Event event) {
return SublimeNavigationView.this.mEventListener != null
&& SublimeNavigationView.this
.mEventListener.onNavigationMenuEvent(event, item);
}
});
mMenu.setMenuPresenter(getContext(), mPresenter);
}
public void inflateMenu(@MenuRes int menuRes) {
if(menuRes == 0) return;
if (isInEditMode()) return;
getActivity().getMenuInflater().inflate(menuRes, mActionMenu.getMenu());
XmlResourceParser parser = null;
try {
//noinspection ResourceType
parser = getResources().getLayout(menuRes);
AttributeSet attrs = Xml.asAttributeSet(parser);
parseMenu(parser, attrs);
} catch (XmlPullParserException | IOException e) {
// should not happens
throw new InflateException("Error parsing menu XML", e);
} finally {
if (parser != null) parser.close();
}
}
@Override
public void inflateMenu(@MenuRes int resId) {
super.inflateMenu(resId);
Menu menu = getMenu();
MenuItem item = menu.getItem(0);
int size = item.getIcon().getIntrinsicWidth() + ControlHelper.dpToPx(30, getResources());
int width = getWidth();
for (int i = 0; i < menu.size(); i++) {
item = menu.getItem(i);
if (size * (i + 2) < width)
MenuItemCompat.setShowAsAction(item, MenuItemCompat.SHOW_AS_ACTION_ALWAYS);
else
break;
}
}
public static BottomSheetMenu getThemedBottomSheetMenu(Context context, @MenuRes int menuRes) {
int tintColor = PalmApp.getColorCompact(isDarkTheme() ?
R.color.dark_theme_image_tint_color : R.color.light_theme_image_tint_color);
BottomSheetMenu menu = new BottomSheetMenu(context);
new MenuInflater(context).inflate(menuRes, menu);
int size = menu.size();
for (int i=0; i<size; i++) {
MenuItem menuItem = menu.getItem(i);
Drawable drawable = menuItem.getIcon();
if (drawable != null) {
menuItem.setIcon(ColorUtils.tintDrawable(drawable, tintColor));
}
}
return menu;
}
/**
* Inflates the menu items from
* an xml resource.
*
* @param menuId a menu xml resource identifier
*/
public void inflateMenu(@MenuRes final int menuId) {
mMenuId = menuId;
mMenuBuilder = null;
mMenuView.reset(menuId, mMenuItemsRoom);
adjustPadding();
}
public void setMenuRes(@MenuRes int menuGeneral, @MenuRes int menuSpecific, @MenuRes int menuMerged) {
toolbarSpecific.getMenu().clear();
if (toolbarGeneral != null) {
toolbarGeneral.getMenu().clear();
toolbarGeneral.inflateMenu(menuGeneral);
toolbarSpecific.inflateMenu(menuSpecific);
} else {
toolbarSpecific.inflateMenu(menuMerged);
}
}
@MenuRes
public int getMoreMenuRes() {
if (isAutomatic()) {
return R.menu.automatic_collection;
} else {
if (!isFavourie()) {
return R.menu.user_collection;
} else {
return R.menu.favourite_collection;
}
}
}
MenuSecondaryItemsAdapter(Context context, @MenuRes int secondaryMenuId, View.OnClickListener onClickListener,
@ColorInt int foregroundColour) {
this.context = context;
this.onClickListener = onClickListener;
this.foregroundColour = foregroundColour;
this.itemss = new ArrayList<>();
MenuParserHelper.parseMenu(context, secondaryMenuId, itemss);
}
public void setNavigationMenu(@MenuRes int menuRes, OnClickListener onClickListener) {
RecyclerView recyclerView = (RecyclerView) findViewById(R.id.nav_items_recycler);
recyclerView.setNestedScrollingEnabled(false);
recyclerView.setLayoutManager(new LinearLayoutManager(getContext(), LinearLayoutManager.HORIZONTAL, false));
menuNavigationItemsAdapter = new MenuNavigationItemsAdapter(getContext(), menuRes, onClickListener,
foregroundColour);
recyclerView.setAdapter(menuNavigationItemsAdapter);
}
public void setSecondaryMenu(@MenuRes int menuRes, OnClickListener onClickListener) {
RecyclerView recyclerView = (RecyclerView) findViewById(R.id.secondary_menu_items_recyler);
recyclerView.setNestedScrollingEnabled(false);
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
menuSecondaryItemsAdapter = new MenuSecondaryItemsAdapter(getContext(), menuRes, onClickListener,
foregroundColour);
recyclerView.setAdapter(menuSecondaryItemsAdapter);
}
public static void parseMenu(Context context, @MenuRes int menuRes, List<MenuEntry> menuEntryList){
PopupMenu p = new PopupMenu(context, null);
Menu menu = p.getMenu();
new MenuInflater(context).inflate(menuRes, menu);
for (int i = 0; i < menu.size(); i++) {
android.view.MenuItem item = menu.getItem(i);
menuEntryList.add(new MenuEntry(item.getTitle().toString(), item.getIcon(), item.getItemId()));
}
}
MenuNavigationItemsAdapter(Context context, @MenuRes int menuRes, View.OnClickListener onClickListener,
@ColorInt int foregroundColour) {
this.context = context;
this.onClickListener = onClickListener;
this.foregroundColour = foregroundColour;
this.navItems = new ArrayList<>();
populateNavigationItems(menuRes);
}
public Builder setMenu(@MenuRes int menuResId, final OnClickListener listener) {
BottomSheetMenu menu = new BottomSheetMenu(context);
new MenuInflater(context).inflate(menuResId, menu);
for (int i = 0; i < menu.size(); i++) {
bottomSheet.ITEMS.add(menu.getItem(i).getTitle());
bottomSheet.ICONS.add(menu.getItem(i).getIcon());
}
bottomSheet.onClickListener = listener;
return this;
}
/**
* Set menu from menu xml
*
* @param menuRes menu xml resource
*/
public void setMenu(@MenuRes int menuRes) {
mCustomView = null;
mMenuRes = menuRes;
removeAllViews();
@SuppressLint("RestrictedApi")
Menu menu = new MenuBuilder(getContext());
inflateMenu(menuRes, menu);
setUpMenu(menu);
}
public BottomSheetBuilder setMenu(@MenuRes int menu) {
@SuppressWarnings("ConstantConditions")
PopupMenu popupMenu = new PopupMenu(mContext, null);
mMenu = popupMenu.getMenu();
popupMenu.getMenuInflater().inflate(menu, mMenu);
return setMenu(mMenu);
}
/**
* Inflates a menu resource into the menu backing this sheet.
*
* @param menuRes Menu resource ID
*/
public void inflateMenu(@MenuRes int menuRes) {
if (menuRes != -1) {
MenuInflater inflater = new MenuInflater(getContext());
inflater.inflate(menuRes, menu);
}
prepareMenuItems();
}
public Builder setMenu(@MenuRes int xmlRes, PanelInterface.PanelMenuListener menuListener) {
if (null == mPanelParams.actionMenu) {
mPanelParams.actionMenu = new ActionMenu(mContext);
}
(new MenuInflater(mContext)).inflate(xmlRes, mPanelParams.actionMenu);
mPanelParams.menuListener = menuListener;
return this;
}
public void setMenuList(@MenuRes int menuRes) {
Menu menu = new PopupMenu(mParentVG.getContext(), null).getMenu();
new MenuInflater(mParentVG.getContext()).inflate(menuRes, menu);
List<MenuEntity> menuEntities = getMenuEntityFormMenuRes(menu);
if(mDelegate != null) {
mDelegate.setMenuList(menuEntities);
}else{
mMenuEntities=menuEntities;
}
}
public void setMenuList(@MenuRes int menuRes) {
Menu menu = new PopupMenu(mParentVG.getContext(), null).getMenu();
new MenuInflater(mParentVG.getContext()).inflate(menuRes, menu);
List<MenuEntity> menuEntities = getMenuEntityFormMenuRes(menu);
if(mDelegate != null) {
mDelegate.setMenuList(menuEntities);
}else{
mMenuEntities=menuEntities;
}
}
/**
* Inflates the DrawerItems from a menu.xml
*
* @param menuRes
* @return
*/
public DrawerBuilder inflateMenu(@MenuRes int menuRes) {
MenuInflater menuInflater = new SupportMenuInflater(mActivity);
MenuBuilder mMenu = new MenuBuilder(mActivity);
menuInflater.inflate(menuRes, mMenu);
addMenuItems(mMenu, false);
return this;
}
/**
* Inflates a menu resource into the menu backing this sheet.
*
* @param menuRes Menu resource ID
*/
public void inflateMenu(@MenuRes int menuRes) {
if (menuRes != -1) {
SupportMenuInflater inflater = new SupportMenuInflater(getContext());
inflater.inflate(menuRes, menu);
}
prepareMenuItems();
}
@MenuRes
protected abstract int getMenuResId();
@MenuRes
protected abstract int getMenuResId();
protected void setBottomMenu(@MenuRes int menuRes) {
navigation.getMenu().clear();
navigation.inflateMenu(menuRes);
}
public ToolbarWidget inflateMenu(@MenuRes int resId) {
view.inflateMenu(resId);
return self();
}
protected void setBottomMenu(@MenuRes int menuRes) {
navigation.getMenu().clear();
navigation.inflateMenu(menuRes);
}
public Builder setExtraActions(@MenuRes int menuResId) {
this.extraActionsMenuResId = menuResId;
return this;
}
public AbsMultiSelectAdapter(Context context, @Nullable CabHolder cabHolder, @MenuRes int menuRes) {
this.cabHolder = cabHolder;
checked = new ArrayList<>();
this.menuRes = menuRes;
this.context = context;
}