2013-02-28 30 views

Trả lời

37

Đối với mỗi MenuItem, làm như sau:

myMenuItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT); 
-1

Các bạn đã thử này:

getSupportActionBar().setDisplayOptions(MenuItem.SHOW_AS_ACTION_IF_ROOM); 
getSupportActionBar().setDisplayOptions(MenuItem.SHOW_AS_ACTION_WITH_TEXT); 
+4

Tôi tin rằng phải là '(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT)', kiểu cờ. – Geobits

+4

Dựa trên [tài liệu] (http://developer.android.com/reference/android/app/ActionBar.html#setDisplayOptions (int)), tôi không nghĩ rằng điều này sẽ hoạt động, vì 'setDisplayOptions()' cần hằng số ActionBar 'DISPLAY_' Mặc dù, một số hằng số [* làm * chồng lên nhau] (http://developer.android.com/reference/android/view/MenuItem.html#SHOW_AS_ACTION_ALWAYS). –

+0

@Geobits Vui lòng gửi câu trả lời của bạn, tôi sẽ chấp nhận nó. –

13

Nếu bạn muốn thiết lập các thuộc tính vào thời gian chạy thì bạn cần phải làm như vậy trên MenuItem , không phải là ActionBar.

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.main_menu, menu); 
    MenuItem item = menu.findItem(R.id.your_menu_item); 
    item.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT); 
} 
Các vấn đề liên quan