2012-01-19 3 views

답변

1

그의 답변 int는 아마도 도움이 될 것입니다. 이 사이트는 여러 가지 방법으로 답변을 제공합니다. 예를 들어 android : state_pressed = true를 사용하고 메뉴 항목에 다른 옵션 (선택, 초점)을 지정하면 항목의 배경이 흰색으로 표시됩니다. 나는 항상 ViewStubs와 사용자 정의 메뉴를 만들 왜 모두에서 표준 옵션 메뉴의 팬이 아니에요

How to change the background color of the options menu?

+0

그 예에서 제안 된 선택기 방법은 실제로 배경이 아닌 아이콘을 변경하는 것이 었습니다. 아무런 대답도 최고의 해답으로 선택되지 않았기 때문에 실제로 자신이 실제로 작동하는지 확신 할 수 없었습니다. –

1

입니다. 그냥 당신이 당신의 메뉴 표시 줄을 설계 할 새로운 레이아웃을 만들 레이아웃 파일에 ViewStub와 통합하고의 메뉴 슬라이드를하자

샘플 자바 코드 :.

public boolean onKeyDown(int keyCode, KeyEvent event) { 
    switch (keyCode) { 
     case KeyEvent.KEYCODE_MENU: 
      mMenuPanel = ((ViewStub) findViewById(R.id.stub_onoption)).inflate(); 
      // initialize buttons of your menu layout and define setOnClickListener() 
      if(!menuVisible) { 
       constants.showPanel(this, mMenuPanel, true); 
       menuVisible = true; 
      } else { 
       constants.hidePanel(this, mMenuPanel, true); 
       menuVisible = false; 
      } 
      return true; 
    default: 
     break; 
    } 
} 

public static void hidePanel(Context context, View panel, boolean slideDown) { 
    panel.startAnimation(AnimationUtils.loadAnimation(context, slideDown ? R.anim.slide_out : R.anim.slide_in_top)); 
    panel.setVisibility(View.GONE); 
} 

public static void showPanel(Context context, View panel, boolean slideUp) { 
    panel.startAnimation(AnimationUtils.loadAnimation(context, slideUp ? R.anim.slide_in : R.anim.slide_out_top)); 
    panel.setVisibility(View.VISIBLE); 
} 

당신이 수행 할 수 있습니다이 방법을 메뉴 막대 (배경 버튼 등)를 완벽하게 사용자 정의하십시오.

편집 : 이것은 어떻게 수행하는지 대략적인 아이디어입니다. 그리고 처음으로 해보는 경우 배경색을 변경하기 위해 과체중이 될 수도 있지만 나중에 다른 슬라이드 인 효과와 같은 다양한 상황에서이 개념을 사용할 수 있습니다. 응용 프로그램 설계, 위치, 크기 및 기타 많은 것들을 변경하십시오. 또한 이러한 종류의 개념은 옵션 검색 막대 또는 인앱 알림 (대화 상자를 사용하지 않으려는 경우)에 사용할 수 있습니다. 따라서 조사 할 가치가 있습니다.