showAsAction =「ifRoom」ではなく、ナビゲーションバーの問題では:Androidのは、オーバーフローメニューバーがアイコンや設定アンドロイドを表示解決しません

免責事項:この記事はブロガーオリジナル記事です、続くBY-SAのCC 4.0を著作権契約、複製、元のソースのリンクと、この文を添付してください。
このリンク: https://blog.csdn.net/weixin_43219615/article/details/100161793
  1. ナビゲーションバーの表示の問題でshowAsAction =「ifRoom」プロパティはありません:設定してアンドロイド。
    名前空間を増やしてxmlns:app="http://schemas.android.com/apk/res-auto"使用しながら、app:showAsAction="ifRoom"
  2. アイコンのプロパティを設定しますが、アイコンの問題を表示しません。
    プライベートメソッドsetOptionalIconsVisibleを呼び出すためにリフレクションを使用して、アイコンが表示されます。
//setOptionalIconsVisible是私有的的,利用暴力反射可以调用
private void setOverflowIconVisible(int featureId, Menu menu) {
	//actionbar的featureId是8 ToolBar的是108
	if(featureId % 100 == Window.FEATURE_ACTION_BAR && menu != null) {
		if(menu.getClass().getSimpleName().equals("MenuBuilder")) {
			try {
				Method method = menu.getClass().getDeclaredMethod("setOptionalIconsVisible", Boolean.TYPE);
				method.setAccessible(true);
				method.invoke(menu, true);
			} catch(Exception e) {
			}
		}
	}
}

おすすめ

転載: blog.csdn.net/weixin_43219615/article/details/100161793