Chciałbym dynamicznie zmienić ikonę "domu" w pasku akcji. Można to łatwo zrobić w wersji 14 za pomocą ActionBar.setIcon (...), ale i tak nie mogę tego znaleźć w poprzednich wersjach.Android: dynamicznie zmieniać ikonę ActionBar?
Odpowiedz
Jeśli używasz kodu ActionbarCompat udostępnianej przez Google, można uzyskać dostęp ikonę domu przez ActionBarHelperBase. klasa java dla API od wersji 4.
//code snippet from ActionBarHelperBase.java
...
private void setupActionBar() {
final ViewGroup actionBarCompat = getActionBarCompat();
if (actionBarCompat == null) {
return;
}
LinearLayout.LayoutParams springLayoutParams = new LinearLayout.LayoutParams(
0, ViewGroup.LayoutParams.MATCH_PARENT);
springLayoutParams.weight = 1;
// Add Home button
SimpleMenu tempMenu = new SimpleMenu(mActivity);
SimpleMenuItem homeItem = new SimpleMenuItem(tempMenu,
android.R.id.home, 0, mActivity.getString(R.string.app_name));
homeItem.setIcon(R.drawable.ic_home_ftn);
addActionItemCompatFromMenuItem(homeItem);
// Add title text
TextView titleText = new TextView(mActivity, null,
R.attr.actionbarCompatTitleStyle);
titleText.setLayoutParams(springLayoutParams);
titleText.setText(mActivity.getTitle());
actionBarCompat.addView(titleText);
}
...
Powinieneś być w stanie zmodyfikować kod przycisku domowego dostępnym dla działań, które rozciągają ActionBarActivity i zmienić go w ten sposób.
Honeycomb wydaje się nieco trudniejszy i wydaje się, że nie daje tak łatwego dostępu. Przypuszczam, że jego identyfikatorem powinien być także android.R.id.home, więc możesz go pobrać z widoku w ActionBarHelperHoneycomb.java
Tak! Dziękuję Ci. Działa 'Activity.findViewById (android.R.id.home)'. – ab11
Jeśli actionbar działa jak Sherlock i opiera się na pozycji menu, to jest moje rozwiązanie:
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
MenuItem switchButton = menu.findItem(R.id.SwitchSearchOption);
if(searchScriptDisplayed){
switchButton.setIcon(R.drawable.menu_precedent);
}else{
switchButton.setIcon(R.drawable.icon_search);
}
return super.onPrepareOptionsMenu(menu);
}
, a dla plastra miodu używam paska czynności dostarczonego przez sdk. tak, próbuję znaleźć odpowiednik honeycomb metody ActionBar.setIcon() podanej w v14. – ab11
Dzięki za ten świetny fragment - szukaliśmy tego przez chwilę! – aaronsnoswell
pracował dla mnie! dzięki –
ActionBar użyje atrybutu logo android: log, jeśli jest jest zapewniony. Dzięki temu można używać oddzielnych zasobów do rysowania dla ikony (Launcher) i logo (ActionBar, między innymi).
powiedziałbym zrobić coś takiego:
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_menu_drawer);
zobaczyć link How to change the icon actionBarCompat
- 1. android actionbar - usuwanie actionbar dynamicznie
- 2. Jak dynamicznie zmieniać wysokość ActionBar z fragmentu
- 3. Google Maps API v3: Jak mogę dynamicznie zmieniać ikonę znacznika?
- 4. Jak dynamicznie zmieniać ikonę jQueryUI przycisku po inicjalizacji?
- 5. Czy można dynamicznie zmieniać ikonę paska stanu (ikona powiadomienia)?
- 6. dynamicznie włącz/wyłącz ukrywanie/pokazywanie ikony akcji ActionBar Android
- 7. Android: Jak dynamicznie zmieniać zawartość zawyżonej karty?
- 8. Android - Jak dynamicznie zmieniać układ fragmentów
- 9. Android ActionBar: wyświetlać/ukrywać karty dynamicznie?
- 10. jak dynamicznie zmieniać klasę fragmentu
- 11. Android - Kliknij ikonę aplikacji ActionBar, utwórz nową instancję aktywności
- 12. Jak dynamicznie zmieniać renderer jqplot?
- 13. Extjs4 Jak dynamicznie zmieniać model?
- 14. jak dynamicznie zmieniać pozycję sprite?
- 15. Android: Actionbar
- 16. Usunąć ikonę, ale mieć HomeAsup w ActionBar
- 17. Android - Jak dynamicznie zmieniać teksty w aktywności preferencji?
- 18. Jak dynamicznie zmieniać wysokość ImageView Wysokość
- 19. android: dynamicznie zmienia ikonę FAB (zmiennoprzecinkowy przycisk) z kodu
- 20. Android ActionBar Odtwórz menu opcji
- 21. Jak dynamicznie zmieniać rozmiar obrazu w Sitecore?
- 22. Jak dynamicznie zmieniać cień podczas obrotu UIImageView?
- 23. Jak dynamicznie zmieniać ścieżkę modułu Perla?
- 24. Jquery TimePicker: Jak dynamicznie zmieniać parametry
- 25. JQuery Sprawdź poprawność dynamicznie zmieniać ignorować reguły
- 26. Jak dynamicznie zmieniać rozmiar okna WPF?
- 27. Jak dynamicznie zmieniać temat całej aplikacji ASP.NET?
- 28. dynamicznie zmieniać wysokość UICollectionReuseableView (nagłówek sekcji kolekcji)
- 29. Jak dynamicznie zmieniać rozmiar iFrame (rozwiązanie crossbrowser)
- 30. Jak dynamicznie zmieniać rozmiar wysokości UITableView?
Czy coś się stało, kiedy zadzwonić 'setIcon'? A jeśli próbujesz dokonać rzeczy w dowolnym przedmio-stwie Honeycomb, powinieneś rzucić okiem na [ActionBarSherlock.] (Http://actionbarsherlock.com/) – adneal
Używam dostosowanego komponentu ActionBar-esque dla pre-v11 (podobny do ActionBarSherlock). Dotyczy to v11-v13 (plaster miodu). Kiedy wołam setIcon w strukturze plastra miodu, otrzymuję wyjątek methodnfound. – ab11
setIcon jest dostępny tylko w poziomach API> = 14 – Sandra