絕對是最好的,和我發現迄今爲止最簡單的答案就是在這裏。
基本上,在這種情況下不需要自定義佈局。只需設置actonViewClass:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:yourapp="http://schemas.android.com/apk/res-auto" >
<item android:id="@+id/spinner"
yourapp:showAsAction="ifRoom"
yourapp:actionViewClass="android.widget.Spinner" />
</menu>
再處理它在onCreateOptionsMenu,像往常一樣:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_layout, menu);
MenuItem item = menu.findItem(R.id.spinner);
Spinner spinner = (Spinner) MenuItemCompat.getActionView(item);
spinner.setAdapter(adapter); // set the adapter to provide layout of rows and content
s.setOnItemSelectedListener(onItemSelectedListener); // set the listener, to perform actions based on item selection
這是迄今爲止最簡單和乾淨的解決方案。對原作者FrançoisPOYER的致謝。
我知道這個元素的存在,但我不知道如何將微調添加到操作欄 – malcoauri
它不符合我的任務。請告訴我,如何將TextView或圖標添加到ActionBar? – malcoauri
增加了一些資源來幫助你。您不能將常規textView和圖標添加到操作欄,因爲它是一個特殊的UI元素,而不是普通的佈局。但是你可以添加某些東西來幫助你完成任務。 –