On Ice Cream Sandwich:zdefiniowane przez użytkownika ActionBar działania Widok: coraz szerokość prawo
szukam dodać AutoCompleteTextView do ActionBar poprzez standardową Action View mechanizmu (bo SearchView nie jest dostępny pre-ICS i ja m”również za pomocą ActionBarSherlock)
<item android:id="@+id/menu_search" android:actionViewClass="com.example.AutoCompleteActionView" android:showAsAction="ifRoom" android:title="@string/address"></item>
<item android:id="@+id/menu_close" android:icon="@drawable/ic_menu_close_clear_cancel" android:showAsAction="always"></item>
<item android:id="@+id/menu_ok" android:icon="@drawable/ic_menu_ok" android:showAsAction="always"></item>
To działa, ale domyślnie nie zużywa dostępnego miejsca w pasku akcji, który bym chciał.
Szukałem na source for the SearchView i widziałem jak to nadpisuje onMeasure, i zrobić to samo dla własnej klasy, że pochodzi od AutoCompleteTextView. Kiedy to zrobię, AutoCompleteTextView zużywa całą przestrzeń, nie pozostawiając miejsca dla dwóch pozycji menu, które chcę wyświetlić na prawo od niego.
Wygląda na to, że szerokość zwrócona z MeasureSpec.getSize() nie uwzględnia pozostałych dwóch pozycji menu, gdy MeasureSpec.getMode() jest MeasureSpec.AT_MOST.
Ktoś zrobił coś podobnego? Jakieś sugestie?
Dzięki, Damian
Jest szansa, że znalazłeś już rozwiązanie? Muszę zastąpić element menu odświeżania widokiem akcji, który zawiera animację, ale widok akcji jest mniejszy niż element menu, mimo że utworzę go przy użyciu prawidłowych wymiarów układu. – Matthias
Nie, obawiam się, że nie. – Damian
Właściwie zrobiłem to dzisiaj.Jest to oczywiście obejście problemu, ale to, co zrobiłem, to: ActionBar renderuje widoki elementów za pomocą wewnętrznej klasy widoku, ale przypisuje te widoki identyfikatorom pozycji menu. Oznacza to, że możesz znaleźćViewById (menuItemId). Następnie wziąłem zmierzoną szerokość i zmierzoną wysokość tego widoku i ustawię ją jako minimalną szerokość/wysokość w widoku akcji. Działa jak marzenie. – Matthias