2011-01-18 5 views
1

사용자가 screenLock을 활성화 할 수 있도록 화면 상단에 확인란을 표시하고 옵션 메뉴를 열 때만 해당 확인란을 표시하려고합니다. 나는이 두 가지 방법 체크 박스를 클릭하면 OptionsMenu가 닫히는 것을 방지합니다.

@Override 
public boolean onMenuOpened(int featureId, Menu menu) { 
    checkbox.setVisibility(View.VISIBLE); 
    return super.onMenuOpened(featureId, menu); 
} 
@Override 
public void onOptionsMenuClosed(Menu menu) { 
    checkbox.setVisibility(View.GONE); 
    super.onOptionsMenuClosed(menu); 
} 

을 overridinbg하여이 작업을 수행 할 수 있어요 그러나 나는 그것을 확인하기 위해, 체크 박스를 터치하면 메뉴가 자체 닫히고 나는 그것을 확인하기 전에 체크 박스가 사라집니다.

내 질문에 간단합니다 : 확인란을 터치하면 옵션 메뉴가 닫히지 않도록하려면 어떻게해야합니까?

답변

3

Android 주식 브라우저에는 메뉴가 열려있을 때 클릭 할 수있는 제목 표시 줄이 표시됩니다. 그래서 그들의 해결책도 당신의 문제에 꼭 맞아야합니다.

타이틀 바는 창 관리자하여 도시되어

WindowManager manager = (WindowManager) getSystemService(Context.WINDOW_SERVICE); 

// Add the title bar to the window manager so it can receive touches 
// while the menu is up 
WindowManager.LayoutParams params 
     = new WindowManager.LayoutParams(
     ViewGroup.LayoutParams.MATCH_PARENT, 
     ViewGroup.LayoutParams.WRAP_CONTENT, 
     WindowManager.LayoutParams.TYPE_APPLICATION, 
     WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, 
     PixelFormat.TRANSLUCENT); 
params.gravity = Gravity.TOP; 
manager.addView(mFakeTitleBar, params); 

이를 제거하기 위해 (메뉴가 폐쇄 될 때 또는 사용자가 클릭)

manager.removeView(mFakeTitleBar); 
관련 문제