Przełączyłem się z ActionBarSherlock na ActionBarCompat (biblioteka pomocy v7). Po pewnych korektach prawie wszystko działa dobrze.SearchView zajmująca całą przestrzeń w nowym ActionBarCompat
Ale mam kłopoty z SearchView w pasku akcji. Kiedy jest rozwinięty (w rzeczywistości jest zawsze rozszerzany w mojej Działalności), zajmuje całą przestrzeń i nie szanuje przestrzeni innych elementów akcji, które są ustawione tak, aby zawsze pokazywały się (showAsAction = "zawsze").
Aby symulować ten problem, użyj tego:
<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>
W Aktywny:
@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);
}
Jest to wynik w Android 4.3:
I to wynik w Androidzie 2.3 (elementy akcji nawet się nie pojawiają):
Ten sam problem występuje, gdy używam:
setSupportProgressBarIndeterminateVisibility(true);
wskaźnik Postęp wydaje się bardzo dziwne w Androidzie 4.3 i nie pojawia się w Android 2.3.
Ten sam kod działał zgodnie z oczekiwaniami w ActionBarSherlock. Kiedy był jakiś element akcji, SearchView użył, aby zmniejszyć jego szerokość, aby dać miejsce dla elementów akcji.
UPDATE:
ja pisał problemu w Android Bug Tracker: https://code.google.com/p/android/issues/detail?id=58251&thanks=58251&ts=1375191632
Jeśli masz ten sam problem, należy wykonać ten problem.
UPDATE:
Próbowałem umieścić elementy działania przed SearchView iw ten sposób pojawiają się przedmioty.
Ale, setSupportProgressBarIndeterminateVisibility (prawda) nadal nie pokazuje pasek postępu.
Stary, przepraszam za gramatyczną nazistę, ale to "Álbumes" –
@LuisLavieri, To nie jest hiszpański, to portugalski. –
Mój zły! Wow, jest bardzo podobny. –