안드로이드 액션바에 오버플로 메뉴 강제하기
안드로이드에 하드웨어 메뉴키가 있는 경우에는 메뉴가 액션바의 오른쪽 끝에 오버플로 메뉴가 뜨지 않고 대신에 메뉴키를 눌렀을 때에만 화면의 아래쪽에서 빼꼼히 뜬다. 이건 디자인의 통일성에 있어서 좀 문제가 있다. 아래의 코드를 onCreate() 메서드 안에 삽입하면 하드웨어 메뉴키가 있는 경우에도 액션바에 오버플로 메뉴 형태로 표시되게 강제할 수 있다. 물론 메뉴키를 누르면 오버플로 버튼을 클릭한 것처럼 화면의 우측상단에 메뉴 목록이 나타난다. // 하드웨어 메뉴키가 있더라도 액션바의 오버플로 메뉴를 사용하도록 강제한다. try { ViewConfiguration config = ViewConfiguration. get ( this ); Field menuKeyField = ViewConfiguration. class .getDeclaredField( "sHasPermanentMenuKey" ); if (menuKeyField != null ) { menuKeyField.setAccessible( true ); menuKeyField.setBoolean(config, false ); } } catch (Exception ex) { ; } 단, 기본 액션바에서만 되고, 콤팻이나 셜록 액션바에서는 안되는 듯 하다. ( http://stackoverflow.com/a/11438245 )