4

은 넥서스 화면을 표시합니다 (여기가 드롭 다운 메뉴에 오른쪽 상단 모서리에있는 3 점에 누름)재정의 메뉴 버튼 액션

enter image description here 나는 메뉴가

는에 나타납니다 화면 오른쪽 상단 모서리. 다음과 같이 전화는 (I 전화의 메뉴 버튼을 누르면이 만 발생) 메뉴를 표시 :

enter image description here

나는 태블릿과 같이 전화에서 같은 메뉴 동작을하고 싶은 경우-에서 화면의 오른쪽 상단에 메뉴를 표시 할 수 있습니다. 여기 내 질문은 거기에 메뉴를 재정의 할 수있는 방법은 거기에 심지어는 메뉴에서도 전화의 화면의 오른쪽 상단 위치에서 표시되어야합니다 심지어는

+4

당신 정말해야 메뉴 버튼을 엉망. 제조업체마다 메뉴 버튼에 대한 솔루션이 다르므로 사용자 주위를 움직이면 어떤 일이 벌어지는 지 전혀 알 수 없습니다. – span

+3

또한 많은 휴대 전화에서 작업 표시 줄 *이 오른쪽 상단 모서리에 표시됩니다. 휴대 전화 대 태블릿의 문제는 아니지만 기기에 전용 오프 스크린 메뉴 버튼이 있는지 여부입니다. 기본 동작을 수락하고 기기의 다른 모든 앱에서 사용하는 패턴을 따라 사용자를 도우십시오. – CommonsWare

+0

@CommonsWare는 귀하의 의견을 보내 주셔서 감사합니다. 전화 옵션에서 선택할 메뉴가 있다는 것을 사용자는 어떻게 알 수 있습니까? –

답변

5

그것은 약간 복잡하지만, 여기에 이 방법 v에서

public void showPopup(View v) { 
PopupMenu popup = new PopupMenu(this, v); 
MenuInflater inflater = popup.getMenuInflater(); 
inflater.inflate(R.layout.menu, popup.getMenu()); 
popup.show(); 

}

당신이 당신의 메뉴를 표시 할하는 뷰입니다 : 일반적인 생각이다.

사용자가 메뉴 버튼을 누르면 메뉴가 표시되도록 메뉴 버튼이 Override 필요합니다. 그것은 일반 메뉴와 같이 다른 다음

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_MENU) { 
     //Put the code for an action menu from the top here 
     return true; 
    } 
    return super.onKeyDown(keyCode, event); 
} 

그리고 모든 것이 동일합니까 (내 생각)

+1

onKeyUp 이벤트를 제안합니다. 내 메뉴 버튼을 놓자 마자 onKeyDown과 PopupMenu를 삭제하려고했기 때문입니다. –