Tuyệt đối là tốt nhất và đơn giản nhất và câu trả lời tôi đã tìm thấy cho đến nay là here.
Về cơ bản, không cần bố cục tùy chỉnh trong trường hợp này. Chỉ cần đặt 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" /> <== this is all that's required
</menu>
Và sau đó xử lý nó trong onCreateOptionsMenu, như thường lệ:
@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); // get the spinner
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(onItemSelectedListener);
này đến nay là giải pháp đơn giản nhất và sạch nhất. Tín dụng cho François Poyer, tác giả gốc.
Nguồn
2015-06-04 08:57:46
Kiểm tra 4 liên kết: Các liên kết này giúp cho bạn http: //fizzylogic.azurewebsites .net/2012/03/05/mono-cho-android-by-example-the-action-bar/https://github.com/StylingAndroid/StylingActionBar https://github.com/StylingAndroid/BasicActionBar – Kumar