2013-08-09 13 views
7

Pracuję nad aplikacją dla systemu Android, która wykorzystuje standardowy pasek akcji ActionBar.
na określonym ekranie mam ikonę filtra, która jest warunkowo wymagana,
zależnie od właściwości wyświetlanych danych, np. niektóre dane można filtrować
Inne nie.
Nie mogę znaleźć żadnych metod na pasku czynności, które wyglądają jak potencjalni kandydaci do programowego ukrywania ikony akcji na pasku akcji. Jak włączyć/wyłączyć ikonę akcji paska zadań?
Lub
Jak mogę ukryć/pokazać ikonę działania paska zadań?
dynamicznie włącz/wyłącz ukrywanie/pokazywanie ikony akcji ActionBar Android

Odpowiedz

12

Spójrz na to, pokazuje, jak zmieniać pozycje menu w czasie wykonywania.

http://developer.android.com/guide/topics/ui/menus.html#ChangingTheMenu

Można na przykład zapisać menu jako zmienna członkiem swojej działalności wewnątrz onCreateOpionsMenu(), a następnie zrobić coś takiego:

MenuItem item = mMenu.findItem(R.id.addAction); 
item.doSomething() 

gdy chcesz zmienić coś na konkretnej pozycji menu.

+0

Phil, dzięki za zabranie czasu. To dokładnie to, czego potrzebowałem. Czuję się zawstydzony, nie mogłem go znaleźć :-) – Hector

2

Jak rozumiem, musisz usunąć ikonę, która jest wyświetlana na lewym pasku akcji.

można zrobić z tej prostej linii kodu:

final ActionBar actionBar = getActionBar();  
actionBar.setDisplayShowTitleEnabled(false); 

a jeśli chcesz, aby pozbyć się z nazwy aplikacji Spróbuj:

actionBar.setDisplayShowHomeEnabled(false); 

nadzieję, że to pomaga.

+0

Nie to, co OP zażądał –

0

Możesz też spróbować:

final ActionBar actionBar= getActionBar(); 
actionBar.hide(); 

To ukryje ikonę i tytuł.

Nie zapomnij import:

import android.app.ActionBar; 

Good Luck

2

Można to zrobić poprzez nadpisanie metody onPrepareOptionsMenu(). Oto mały przykład

@Override 
public boolean onPrepareOptionsMenu(Menu menu) { 
    if (count < 1) 
     menu.getItem(4).setEnabled(false); //disable menuitem 5 
    if (!after) 
    menu.getItem(1).setVisible(false); // invisible menuitem 2 
    invalidateOptionsMenu(); 
    return true; 
} 

Jednak metoda ta jest wywoływana tylko po kliknięciu przycisku menu w pasku akcji. Jeśli na pasku akcji znajdują się dowolne ikony (z wyjątkiem przycisku menu), kliknięcie tego nie uruchomi metody OnPrepareOptionsMenu(). Aby wywołać tę metodę ręcznie, możesz użyć metody invalidateOptionsMenu() w swoich metodach. lubić ten

+0

Jak to zrobić w Fragment? jak unieważnićOptionsMenu() ;? –

+1

getActivity(). InvalidateOptionsMenu() powinno działać. –

Powiązane problemy