2012-05-15 5 views
5

내 응용 프로그램에서 내 자신의 Actionbar를 만들었고 매우 잘 작동합니다.Android custom 오버플로 - 메뉴 (액션 바 및 메뉴 바 없음)

그러나 메뉴 단추가없는 ICS 장치에서 오버플로 단추의 동작을 사용하고 싶습니다.

ICS에서 작업 표시 줄과 별도로 사용자 지정 오버플로 단추를 구현할 수 있습니까?

감사합니다.

+0

는 명확합니다. – DagW

+0

http://developer.android.com/resources/samples/ActionBarCompat/index.html을 보셨습니까? – techiServices

답변

19

userSeven7s 대부분 ListPopupWindow 그것을 가지고 있지만, 더 나은 착용감이 경우에 당신이 표준 menu.xml 팽창 할 수 있습니다 PopupMenu입니다. 자신의 View 또는 Button을 오른쪽 상단에 놓고 onClick 처리기에서 팝업 메뉴를 만들고 표시 할 수 있습니다.

예제는 ApiDemos>보기> 팝업 메뉴에서 찾을 수 있습니다. 특히 PopupMenu1.java : 내가 세 개의 점과 하단에 검은 색 막대를 제거 할, 그리고 istead 내 사용자 정의 액션 바에서 내 자신의 버전을 구현합니다

public void onPopupButtonClick(View button) { 
    PopupMenu popup = new PopupMenu(this, button); 
    popup.getMenuInflater().inflate(R.menu.popup, popup.getMenu()); 

    popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { 
     public boolean onMenuItemClick(MenuItem item) { 
      Toast.makeText(PopupMenu1.this, "Clicked popup menu item " + item.getTitle(), 
       Toast.LENGTH_SHORT).show(); 
      return true; 
     } 
    }); 

    popup.show(); 
} 
+0

완벽! 그것은 compability 패키지와 함께 사용할 수 있습니까? – DagW

+1

아니요. 나는 백 포팅하기가 다소 어려울 것이라고 생각합니다. 하지만 실제로는 (모든 Android 2.x) 장치에있는 기존 메뉴 버튼을 사용하고 메뉴 버튼이없는 장치의 팝업 메뉴를 사용하는 것이 좋습니다. http://developer.android를 사용하여이를 감지 할 수 있습니다. co.kr/reference/android/view/ViewConfiguration.html # hasPermanentMenuKey(). –

+0

하지만 팝업 메뉴를 사용하면 아이콘을 추가 할 수 없습니다. –

0

ActionBar Sherlock을 보았습니까? ABS는 Android 2.1 이상을 실행하는 모든 기기에 액션 바를 지원합니다. ActionBarCompat 샘플은 매우 제한적이며 구형 장치의 오버 플로우 메뉴를 지원하지 않습니다. 오버플로를 사용하려면 Theme.Sherlock.ForceOverflow 테마를 사용해야합니다.

http://actionbarsherlock.com/

당신은 또한 당신이 원하는 일을 할 수 QuickAction 라이브러리를 수정할 수 있습니다.

https://github.com/lorensiuswlt/NewQuickAction

0
당신은 슬라이드 수

/더 많은 옵션에 액세스 할 수 있도록하여 작업 표시 줄을 스크롤합니다. HorizontalScrollView.

또한 PopupWindow 클래스 here에서 살펴 봐야 할 수 있습니다, 그리고 ListPopupWindow 문서 here에 작업 표시 줄을 넣습니다.