Sau 2 ngày gặp khó khăn với Thanh công cụ 21 API mới và appCompat_v7, tôi nghĩ mình đã tìm thấy lỗi trên đó. Nếu bạn có 2 hành động trên thực đơn của bạn như thế này:Thanh công cụ AppCompat_v7 là thanh tác vụ không hiển thị các hành động 'luôn luôn' từ menu, nhưng Thanh công cụ API hiện
<item
android:id="@+id/action_test"
android:showAsAction="always"
android:icon="@drawable/ic_launcher"
android:title="@string/action_settings"/>
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:showAsAction="never"
android:title="@string/action_settings"/>
và một thanh công cụ appCompat định nghĩa như thế này:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.toolbar.MainActivity" >
<android.support.v7.widget.Toolbar
android:layout_width="match_parent"
android:layout_height="52dp"
android:id="@+id/toolbar">
</android.support.v7.widget.Toolbar>
</RelativeLayout>
sau khi lạm phát (hoặc thiết lập các phương pháp setSupportActionBar)
Toolbar toolbar = (Toolbar)findViewById(R.id.toolbar);
toolbar.setTitle("esurance");
setSupportActionBar(toolbar);
bạn sẽ nhận được menu thanh công cụ mà không cần biểu tượng hành động của bạn, nó sẽ hiển thị nó trên menu mục bổ sung.
Nhưng, nếu bạn sử dụng lớp Toolbar từ API 21, nó sẽ hiển thị hành động của bạn như định nghĩa về bố trí menu của bạn ...
<Toolbar
android:layout_width="match_parent"
android:layout_height="52dp"
android:id="@+id/toolbar">
</Toolbar>
Có lẽ tôi đang thiếu một cái gì đó ở đây, nhưng cho đến nay, tôi đã không thể hiển thị các hành động bên ngoài menu mục bổ sung bằng cách sử dụng appCompat. Bất kỳ trợ giúp về điều này sẽ được nhiều đánh giá cao.
Trong trường hợp của tôi điều này không hoạt động nhưng android: showAsAction = "always" nó hoạt động. Tôi không thể hiểu tại sao điều này không hoạt động. –
@HarshvardhanTrivedi Đó cũng là trường hợp của tôi. Nhưng may thay tôi đã tìm ra giải pháp: trong 'onCreateActionMode' không sử dụng' mode.getMenuInflater() ', nhưng sử dụng' getMenuInflater() 'từ' ActionBarActivity'. – yuku
@yuku của bạn là câu trả lời đúng. – agirardello