android,actionbar,menu表示,画像,メニュー無効★★

6932 ワード

文章のまとめ:3つの点:①menuはactionbarの位置の下に表示したい②menuは画像を表示したい③システムのメニューバーを無効にする第1点:menuはactionbarまたはtoolbarの位置の下に表示させて次のように修正し、styleの中で修正したい:
 
  

2つ目は、あなたのmenuを表示するxmlがこのように書かれている可能性があります.
写真とタイトルを同時に表示したいshowAsActionはwithTextに指定できます
xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:tools="http://schemas.android.com/tools"
      xmlns:app="http://schemas.android.com/apk/res-auto">
            android:orderInCategory="80"
        android:id="@+id/mn_it_download"
        android:icon="@drawable/ic_download_menu"
        android:title="@string/download"
        app:showAsAction="never"/>   //     actionbar  ,            
            android:id="@+id/mn_it_search"
        android:title="@string/search"
        app:showAsAction="never"/>

これらのtitleをtoolbarに表示したい場合は、ドロップダウンの欄に単独で表示するのではなく、toolbarに表示します.
app:showAsAction="always"-->注意:app
この時、直接コピーすればいいので、反射して画像を表示させます.
@Override
protected boolean onPrepareOptionsPanel(View view, Menu menu) {
    if (menu != null) {
        if (menu.getClass() == MenuBuilder.class) {
            try {
                Method m = menu.getClass().getDeclaredMethod("setOptionalIconsVisible", Boolean.TYPE);
                m.setAccessible(true);
                m.invoke(menu, true);
            } catch (Exception e) {
            }
        }
    }
    return super.onPrepareOptionsPanel(view, menu);
}

3点目:メニューバーを無効にする
menuが正常に表示されると、システムのメニューバーをクリックすると画面の下部に表示され、表示したくない携帯電話があるかもしれません.
システムメニューバーを無効にする:
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
   if (event.getKeyCode() == KeyEvent.KEYCODE_MENU) {
        return true;   //      ,     
    }
    return super.dispatchKeyEvent(event);
}