Tôi đã chuyển từ ActionBarSherlock sang ActionBarCompat (thư viện hỗ trợ v7). Sau một số điều chỉnh, hầu như mọi thứ đều hoạt động tốt ngay bây giờ.SearchView lấy tất cả không gian trong ActionBarCompat mới
Nhưng tôi đang gặp rắc rối với SearchView trong ActionBar. Khi nó được mở rộng (trên thực tế, nó luôn được mở rộng trong Hoạt động của tôi), nó chiếm toàn bộ không gian và không tôn trọng không gian của các mục tác vụ khác được đặt để hiển thị luôn (showAsAction = "always").
Để mô phỏng vấn đề, sử dụng này:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/menu_buscar"
app:actionViewClass="android.support.v7.widget.SearchView"
android:icon="@drawable/abc_ic_search"
app:showAsAction="always"
android:title="@string/buscar"/>
<item android:id="@+id/tentar_novamente"
android:title="@string/tentar_novamente"
android:icon="@drawable/acao_tentar_novamente"
app:showAsAction="always" />
</menu>
Trong Hoạt động:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.busca_action_menu, menu);
searchMenuItem = menu.findItem(R.id.menu_buscar);
searchView = (SearchView) MenuItemCompat.getActionView(searchMenuItem);
searchView.setIconifiedByDefault(false);
searchView.setQueryHint(stringBusqueArtistasMusicasEAlbuns);
return super.onCreateOptionsMenu(menu);
}
Đây là kết quả trong android 4.3:
Và đây là kết quả trong android 2.3 (các mục hành động thậm chí không xuất hiện):
Vấn đề tương tự xảy ra khi tôi sử dụng:
setSupportProgressBarIndeterminateVisibility(true);
chỉ Tiến độ xuất hiện rất lạ trong Android 4.3 và không xuất hiện trong Android 2.3.
Mã tương tự đã hoạt động như mong đợi với ActionBarSherlock. Khi có một số mục hành động, SearchView được sử dụng để giảm chiều rộng của nó để cung cấp khoảng trống cho các mục tác vụ.
UPDATE:
tôi đã đăng một vấn đề trong Tracker Bug của Android: https://code.google.com/p/android/issues/detail?id=58251&thanks=58251&ts=1375191632
Nếu bạn có cùng một vấn đề, hãy làm theo vấn đề này.
UPDATE:
tôi đã cố gắng để đưa các hành động trước khi SearchView và cách này họ mục xuất hiện.
Tuy nhiên, setSupportProgressBarIndeterminateVisibility (true) vẫn không hiển thị thanh tiến trình.
Dude, xin lỗi vì là một ngữ pháp phát xít, nhưng đó là "Álbumes" –
@LuisLavieri, Nó không phải là tiếng Tây Ban Nha, nó là tiếng Bồ Đào Nha. –
Tệ của tôi! Wow, nó là như vậy tương tự. –