2012-01-31 7 views
11

Jeśli pasek akcji Android podzielony jest na górną i dolną część przy użyciu android:uiOptions="splitActionBarWhenNarrow" w Manifext.xml, , czy istnieje sposób na wymuszenie wyświetlania niektórych działań w górna część zamiast mieć je wszystkie na dole?Jak dodać akcje do górnej części podzielonego ActionBar

+0

Wygląda na to, że odpowiedź brzmi „nie” i odpowiedział na http://stackoverflow.com/questions/8571754/android-split-action-bar-with-action-items-items -on-top-and-bottom –

Odpowiedz

1

Nie ma standardowego sposobu robienia tego. Powiedział, że niestandardowy widok paska czynności pojawi się na górnym pasku, więc możesz go po prostu użyć. Stracisz niektóre dodatki (toasty na długie naciśnięcie), więc będziesz musiał je zaimplementować samemu. Powiedziałeś, że używasz ActionBarSherlock, wszystkie układy i style dla zwykłego przycisku są tam, więc możesz po prostu z nich korzystać.

2

Tak! Możesz nadal używać android:uiOptions="splitActionBarWhenNarrow" w pliku Manifest.xml.

Wystarczy też trzeba ustawić:

// set the actionbar to use the custom view 
getActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); 

//set the custom view to use 
getActionBar().setCustomView(R.layout.custom_action_bar_top); 

Gdzie R.layout.custom_action_bar_top byłby pogląd, że ma wszystkie przyciski, które chcesz umieścić w górnym pasku akcji.

Wszystkie pozycje menu, które chcesz umieścić na dole, powinny zostać dodane jak zwykle w metodzie swojej aktywności pod numerem onCreateOptionsMenu.

+1

Witaj @immerion, to ma sens, ale czy próbowałeś? Czy to faktycznie działa w ten sposób? – ericn

+2

Hi @fuzzybee, tak, kiedy potrzebowałem tego zrobić, potrzebowałem tylko paska wyszukiwania na górze, więc użyłem: 'SearchView searchView = new SearchView (context); getSupportActionBar(). SetCustomView (searchView, \t new LayoutParams (Gravity.RIGHT)); ' Jeśli chcesz zobaczyć, jak to wygląda, sprawdź [SwishPix] (https://play.google.com/store/ aplikacje/szczegóły? id = com.immersion.swishpix.free). Zrzut ekranu listy albumów jest przykładem tego, jak może wyglądać. –

+0

Dzięki temu rozwiązaniu będziesz musiał ponownie ręcznie zaimplementować ikonę i tytuł, więc nie będzie to łatwe rozwiązanie. – Andres

1

Chciałbym zastąpić rozwiązanie Dylana Watsona, ale z jedną poprawką. Dla osób, które chciałyby zachować tytuł, a nie zastąpić cały pasek akcji swoim nowym widokiem, używają getActionBar().setDisplayShowCustomEnabled(true), a nie getActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);, ponieważ ten ostatni spowoduje, że nowy widok będzie jedynym widokiem wyświetlanym na pasku akcji. Mój kod:

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); 
    SearchView searchView = new SearchView(this); 
    searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); 
    getActionBar().setDisplayShowCustomEnabled(true); 
    getActionBar().setCustomView(searchView, new ActionBar.LayoutParams(Gravity.RIGHT)); 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 
+0

Potwierdzone, włącza niestandardowy widok bez wyłączania przycisku głównego i tytułu, jak w odpowiedzi Dylana. Jeśli tytuł nadal się nie pojawia, może być objęty niestandardowym widokiem; ta odpowiedź zapewnia pewne opcje układu: http://stackoverflow.com/a/16517395/462162 – arlomedia

Powiązane problemy