2013-07-28 3 views
4

최근에 일반 액션 바 구현에서 최근에 출시 된 appcompat 구현으로 전환했습니다. 내 응용 프로그램은 기능을 제공하기 위해 작업 표시 줄을 많이 사용했습니다. 전환 이후 이전 지점의 API (11 개 미만)에는 메뉴 항목이 없습니다. 그리고 더 새로운 API는 그렇지만, 구성된 것과 같은 이미지를 보여주지는 않습니다 (room | withText 인 경우). 다른 사람이 이것을 경험했거나 다른 해결책을 생각해 냈습니까?appcompat 라이브러리를 사용하여 작업 표시 줄 메뉴를 가질 수 있습니까?

답변

25

appcompat 라이브러리를 사용할 때 무슨 일이 일어 났는지 알았습니다. 평소처럼 메뉴를 만들 수 있습니다.

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 

하지만, 메뉴 XML 파일에서는, XMLNS을 추가 응용 프로그램의 속성을 메뉴 태그에,과 같이 :

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" > 

다음, 당신이 보통을 지정하여 메뉴 항목의 각

app:showAsAction="ifRoom|withText" 
android:showAsAction="ifRoom|withText" 

이 후, 메뉴는 현재 및 이전 API를 올바르게 표시됩니다 : "showAs"스타일 (ifRoom, withText 등), 일반 하나와 함께이 다른 라인을 포함한다. 나는이 정보를 here에서 얻었습니다.

+0

추가하면, 코드에서 \t \t setHasOptionsMenu (true) 문을 추가하여 기본값에서 벗어나 사용할 메뉴가 있음을 알릴 수 있습니다 – ajdeguzman

1

기기에 물리적 "메뉴"버튼이있는 경우 상황에 맞는 메뉴가 표시됩니다. 그렇지 않은 경우 메뉴 항목이 ActionBar에 추가됩니다.

+1

감사합니다. 2.2의 ActionBar에 항목이 추가되지 않았습니까? @David Wood의 대답에 –