İşlem çubuğundaki bir menü öğesini nasıl gizlerim?


346

Bir menuitem ile bir eylem çubuğum var. Bu menü öğesini nasıl gizleyebilir / gösterebilirim?

Ben yapmaya çalışıyorum:

MenuItem item = (MenuItem) findViewById(R.id.addAction);
item.setVisible(false);
this.invalidateOptionsMenu();

Yanıtlar:


484

Bir Get MenuItemböyle öğeye işaret, çağrı setVisibleüzerine görünürlüğünü ayarlamak ve sonra aramaya invalidateOptionsMenu()İşlem Çubuğu menüsü buna göre ayarlanır böylece aktivitesi üzerine.

Güncelleme: A MenuItem, düzeninizin bir parçası olan normal bir görünüm değil. Özel, tamamen farklı bir şey. Kodunuz döner nulliçin itemve bu çökmesine neden olan en. Bunun yerine ihtiyacınız olan şey:

MenuItem item = menu.findItem(R.id.addAction);

İlk arama: Burada çağırmalıdır hangi dizisidir invalidateOptionsMenu()içeride sonra ve onCreateOptionsMenu(Menu)(çağırarak Menuıtem başvurusu elde menu.findItem()) ve çağrı setVisible()üzerine


Başlangıçta düşündüm bu, ama bu uygulama çöküyor.
Stir Zoltán

3
@Stir Zoltán: İşte böyle yaparsınız, uygulama çökerse yanlış yapıyor olabilirsiniz. Örneğin, bunun yerine kullanmakta MenuItemolabilirsiniz . Hem kodunuzu hem de kilitlenme günlüğünü görmeden asla bilemeyiz. nullgetItemfindItem
K-ballo

Tamam ama onCreateOptionsMenu yönteminin dışındaki menüye nasıl başvuru alabilirim?
Stir Zoltán

7
@Stir Zoltán: Son yorumda hiçbir anlam ifade etmediğinize inanıyorum ... Sadece menü öğenize bir referans alın onCreateOptionsMenuve öğenin görünürlüğünü o noktada ayarlayın. Ya da görünür olup olmayacağına karar verene kadar referansı yanınızda bulundurun.
K-ballo

33
Bence (en iyi şekilde) bu cevap çok kötü ifade edilmiştir çünkü adımlar dizisi yanlıştır. Doğru sıra, önce çağrı yapmak invalidateOptionsMenu()ve daha sonra içeride (arayarak ) onCreateOptionsMenu(Menu)bir referans almak ve çağırmaktır . Cevaplar suhas_sm tarafından ve P1r4nh4 tarafından doğru bir yaklaşım sunuyoruz. MenuItemmenu.findItem()setVisible()
Ted Hopp

163

Bu soru için bir zeyilname bulundu:

Menü öğelerinizin hareket halindeyken görünürlüğünü değiştirmek istiyorsanız, menüyü invalidateOptionsMenu()gizlemek ve geçersiz kılınan onCreateOptionsMenu(...)yönteminizdeki öğeleri aramak ve gizlemek istediğinizi hatırlamak için etkinliğinizde bir üye değişkeni ayarlamanız yeterlidir .

//anywhere in your code
...
mState = HIDE_MENU; // setting state
invalidateOptionsMenu(); // now onCreateOptionsMenu(...) is called again
...

@Override
public boolean onCreateOptionsMenu(Menu menu)
{
    // inflate menu from xml
    MenuInflater inflater = getSupportMenuInflater();
    inflater.inflate(R.menu.settings, menu);

    if (mState == HIDE_MENU)
    {
        for (int i = 0; i < menu.size(); i++)
            menu.getItem(i).setVisible(false);
    }
}

Örneğimde tüm öğeleri gizledim.


2
Tam da aradığım şey bu. MenuItem tutarak ve setVisible () çağırmak beklediğim gibi görünmüyordu (belki ben sonra invalidateOptionsMenu () çağırıyor çünkü, böylece menü yeniden), ama her iki şekilde - bu tam olarak umduğum gibi çalışıyor, teşekkürler!
Matt,

4
Her öğeyi saklayacaksanız, daha kolay bir yol var. Buradaki her öğeye döngü yapmak yerine şunları yapabilirsiniz: if (HIDE_MENU) { return false; } else { getSupportMenuInflater().inflate(R.menu.menu_settings, menu); return true; }Dokümanlar şunu gösterir: "Menünün görüntülenmesi için true değerini döndürmeniz gerekir; false değerini döndürürseniz gösterilmez".
w3bshark

Ayrıca, bu yaklaşımın kabul edilen cevaptan çok daha temiz olduğunu belirtmek isterim. Paylaşım için teşekkürler!
w3bshark

onvalreateOptionMenu () çağrıldığında onCreateOptionMenu () çağırdı ve onCreateOptionMenu () benim koşulları ele. İyi cevap için teşekkürler
user1912026

onPrepareOptionsMenu()onCreateOptionsMenu()yalnızca bir kez çağrıldığı için show / hide mantığı için kullanılmalıdır, bu nedenle başlatma işleminden sonra menü öğelerini değiştirmek isterseniz yararlı olmaz. Bu yüzden onCreate'a şişirin, ancak onPrepare'de gösterin / gizleyin.
JCutting8

89

Evet.

  1. Bir bayrak / koşul ayarlayabilirsiniz.
  2. invalidateOptionsMenu()Seçeneği gizlemek istediğinizde arayın . Bu arayacak onCreateOptionsMenu().
  3. İçinde onCreateOptionsMenu(), bayrağı / koşulu kontrol edin ve aşağıdaki şekilde gösterin veya gizleyin:
MenuItem item = menu.findItem(R.id.menu_Done);

if (flag/condition)) {
  item.setVisible(false); 
} else { }

2
Bunun invalidateOptionsMenuyerine olmamalı mı invalidateOptions?
razz

3
Bayrağınızı bir boole yaparsanız, öğenin görünürlüğünü gerekirse bayrağa (veya! Bayrağa) ayarlayabilirsiniz. Yani, item.setVisbility (! Flag); bunu bir koşul olmadan tek bir astar yapar.
jwehrle

"menu" değişkeni nerede tanımlanır?
Jonathan

Bir parametre olarak geçirildionCreateOptionsMenu
suhas_sm

Bu yöntemi kullanmak, öğenin hala yer kapladığı anlamına gelir ve kullanıcı arayüzünüzde düğmenin olması gereken yerde bir "boşluk" ile sonuçlanabilir. OnPrepareOptionsMenu () öğesinde removeItem kullanmak hile yapar.
JCutting8

39

Buna şöyle diyebilirsiniz:

MenuItem item = menu.findItem(R.id.my_item);
item.setVisible(false);

Güncelleme:

Emin kodunuzu döndürür vermez Make nulliçin itemveya uygulamayı çökebilir.


Bu yöntemi kullanmak, öğenin hala yer kapladığı anlamına gelir ve kullanıcı arayüzünüzde düğmenin olması gereken yerde bir "boşluk" ile sonuçlanabilir. OnPrepareOptionsMenu () öğesinde removeItem kullanmak hile yapar.
JCutting8

33

Biraz daha bağlamlı bir cevap arıyordum. Şimdi anladım, bu cevabı ekleyeceğim.

Xml menüsünde varsayılan olarak gizle düğmesi

Varsayılan olarak paylaş düğmesi, ayarlandığı şekilde gizlenir android:visible="false".

resim açıklamasını buraya girin

main_menu.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:app="http://schemas.android.com/apk/res-auto">

    <!-- hide share button by default -->
    <item
        android:id="@+id/menu_action_share"
        android:icon="@drawable/ic_share_white_24dp"
        android:visible="false"     
        android:title="Share"
        app:showAsAction="always"/>

    <item
        android:id="@+id/menu_action_settings"
        android:icon="@drawable/ic_settings_white_24dp"
        android:title="Setting"
        app:showAsAction="ifRoom"/>

</menu>

Koddaki düğmeyi göster

Ancak paylaş düğmesi isteğe bağlı olarak bazı koşullara göre gösterilebilir.

resim açıklamasını buraya girin

MainActivity.java

public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.main_menu, menu);
    MenuItem shareItem = menu.findItem(R.id.menu_action_share);

    // show the button when some condition is true
    if (someCondition) {        
        shareItem.setVisible(true);
    }

    return true;
}

Ayrıca bakınız


onPrepareOptionsMenu (), onCreateOptionsMenu () yerine show / hide mantığı için kullanılmalıdır, çünkü bir kez çağrıldıktan sonra menü öğelerini değiştirmek istiyorsanız kullanışlı değildir. Bu yüzden onCreate'a şişirin, ancak onPrepare'de gösterin / gizleyin, ardından invalidateOptionsMenu()menüyü yenilemek için kullanın.
JCutting8

24

benim için çalışmadı. onPrepareOptionsMenuGörünmez bir öğeyi ayarlamak için açıkça kullanmak zorunda kaldım .

Bu yüzden onCreateOptionsMenumenüyü oluşturmak ve onPrepareOptionsMenugörünürlüğü değiştirmek için kullanın.


1
Benim için her iki şekilde çalıştı, ancak Android'in belgelerine dayanarak onPrepareOptionsMenubu tür bir işlem yapmak için doğru yer gibi görünüyor: "Ekranın standart seçenekler menüsünü görüntülenecek şekilde hazırlayın. Bu, menü gösterilmeden hemen önce, her gösterildiğinde çağrılır Bu yöntemi, öğeleri etkin bir şekilde etkinleştirmek / devre dışı bırakmak veya içeriği dinamik olarak değiştirmek için kullanabilirsiniz. "
yuval

Evet, bu ideal. onPrepareOptionsMenu (), onCreateOptionsMenu () yerine show / hide mantığı için kullanılmalıdır, çünkü bir kez çağrıldıktan sonra menü öğelerini değiştirmek istiyorsanız kullanışlı değildir. Bu yüzden onCreate'a şişirin, ancak onPrepare'de gösterin / gizleyin, ardından invalidateOptionsMenu()menüyü yenilemek için kullanın.
JCutting8

9

Başlangıçta menü düzeni dosyasında menü öğesi görünürlüğünü false olarak ayarlayın:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:visible="false"
        android:id="@+id/action_do_something"
        android:title="@string/txt_do_something"
        app:showAsAction="always|withText"
        android:icon="@drawable/ic_done"/>
</menu>

Ardından, menüyü şişirdikten sonra onCreateOptionsMenu () öğenizde menü öğesinin görünürlüğünü false olarak ayarlayabilirsiniz.

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    super.onCreateOptionsMenu(menu, inflater);
    inflater.inflate(menu,R.menu.menu);
    MenuItem item = menu.findItem(R.id.menuItemId);
    if (item != null){
        item.setVisible(false);
    }
}

onCreateOptionsMenu bir boolean değeri döndürmez. Çözüm mükemmel çalıştı.
Joseph


7

Bu benim için hem Etkinlik hem de Parçadan işe yaradı

@Override
public void onPrepareOptionsMenu(Menu menu) {
    super.onPrepareOptionsMenu(menu);
    if (menu.findItem(R.id.action_messages) != null)
        menu.findItem(R.id.action_messages).setVisible(false);
}

1
Benim durumumdaPrepareOptionsMenu geçersiz değil boole döndürür.
CoolMind

6

P1r4nh4 cevap iyi çalışıyor, ben sadece bir boole bayrağı kullanarak basitleştirdim:

public int mState = 0; //at the top of the code
//where you want to trigger the hide action
mState = 1; // to hide or mState = 0; to show
invalidateOptionsMenu(); // now onCreateOptionsMenu(...) is called again
...

@Override
public boolean onCreateOptionsMenu(Menu menu)
{
    // inflate menu from xml
    MenuInflater inflater = getSupportMenuInflater();
    inflater.inflate(R.menu.settings, menu);

    if (mState == 1) //1 is true, 0 is false
    {
        //hide only option 2
            menu.getItem(2).setVisible(false);
    }
}

2
Kullanılması 0ve 1bir "boolean bayrak", 's sözde boolean değildir. ayrıca burada gerçek bir boole kullanmak için hiçbir neden yoktur.
Ingo Bürk

2
Ayrıca, sadece birini gizlemek ve diğerini göstermek için birkaç eyaletiniz olabilir. Uygulamanızın karmaşıklığına ve yeni uygulama durumları için yeni etkinlikler yazmayı reddetmenize bağlı olarak, menünüzün belirli bölümlerini gizlemek istediğinizde bir SHOW_ALL durumuna, HIDE_ALL durumuna, ancak HIDE_EDIT veya HIDE_SHARE durumuna sahip olabilirsiniz.
P1r4nh4

4

Android Geliştirici Resmi sitesine göre, Menü öğelerini veya simgelerini değiştirmek için OnCreateOptionMenu (Menü menüsü), Çalışma Zamanı'nda görünürlük .. vb.

Sistem onCreateOptionsMenu () yöntemini çağırdıktan sonra, doldurduğunuz Menünün bir örneğini korur ve menü herhangi bir nedenle geçersiz kılınmadıkça onCreateOptionsMenu () yöntemini tekrar çağırmaz. Ancak, onCreateOptionsMenu () yöntemini yalnızca başlangıç ​​menü durumunu oluşturmak ve etkinlik yaşam döngüsü sırasında değişiklik yapmak için kullanmamalısınız.

Etkinlik yaşam döngüsü sırasında meydana gelen olaylara bağlı olarak seçenekler menüsünü değiştirmek isterseniz, bunu onPrepareOptionsMenu () yönteminde yapabilirsiniz. Bu yöntem, şu anda varolan Menü nesnesini iletir; böylece öğeleri ekleme, kaldırma veya devre dışı bırakma gibi değiştirebilirsiniz. (Parçalar ayrıca bir onPrepareOptionsMenu () geri çağrısı sağlar .) --AndroidDeveloper Resmi Sitesi -

Önerilen Olarak Bu onOptionsItemSelected (MenuItem öğesi) yöntemini kullanıcı girişlerini izlemek için kullanabilirsiniz.

@Override
public boolean onOptionsItemSelected(MenuItem item) {

    int id = item.getItemId();

    if (id == R.id.edit) {
        Intent intent = new Intent(this, ExampleActivity.class);
        intent.putExtra(BUNDLE_KEY, mConnection);
        startActivityForResult(intent, PICK_CHANGE_REQUEST);
        return true;
    } else if (id == R.id.delete) {
        showDialog(this);
        return true;
    }

    return super.onOptionsItemSelected(item);
}

Menü Öğelerini Çalışma zamanında değiştirmeniz gerekirse, değiştirmek için onPrepareOptionsMenu (Menü menüsü) seçeneğini kullanabilirsiniz.

@Override
public boolean onPrepareOptionsMenu(Menu menu){

    if (Utils.checkNetworkStatus(ExampleActivity.this)) {
        menu.findItem(R.id.edit).setVisible(true);
        menu.findItem(R.id.delete).setVisible(true);
    }else {
        menu.findItem(R.id.edit).setVisible(false);
        menu.findItem(R.id.delete).setVisible(false);
    }
    return true;
} 

bazı öğeler her zaman görünürdür, bu yüzden setVisible(false)her zaman görünür öğe için ben üç noktaya (Menü'nin kendisi) tıklayana kadar kaybolmaz. Ben kullanırsanız invalidateOptionsMenu()içinde onPrepareOptionsMenuhemen kendini yeniden organize öğeler, ama onların eylemleri gevşek (Ben herhangi bir öğeyi tıklayarak, eğer hiçbir şey yapmaz).
Aliton Oliveira

3

bir değişkene bir değer ayarlayın ve invalidateOptionsMenu () öğesini çağırın;

Örneğin

    selectedid=arg2;
            invalidateOptionsMenu();


 public boolean onPrepareOptionsMenu(Menu menu) {

    if(selectedid==1){
        menu.findItem(R.id.action_setting).setVisible(false);
        menu.findItem(R.id.action_s2).setVisible(false);
        menu.findItem(R.id.action_s3).setVisible(false);
    }
    else{
        if(selectedid==2){
            menu.findItem(R.id.action_search).setVisible(false);
            menu.findItem(R.id.action_s4).setVisible(false);
            menu.findItem(R.id.action_s5).setVisible(false);
        }
    }
    return super.onPrepareOptionsMenu(menu);
}

bazı öğeler her zaman görünürdür, bu yüzden setVisible(false)her zaman görünür öğe için ben üç noktaya (Menü'nin kendisi) tıklayana kadar kaybolmaz. Ben kullanırsanız invalidateOptionsMenu()içinde onPrepareOptionsMenuhemen kendini yeniden organize öğeler, ama onların eylemleri gevşek (Ben herhangi bir öğeyi tıklayarak, eğer hiçbir şey yapmaz).
Aliton Oliveira

3

toolbar.getMenu().clear();Tüm menü öğelerini bir kerede gizlemek için kullanabilirsiniz


@Ajeet_Yadav, menüyü temizledikten sonra görünür yapmanın bir yolu var mı?
Shawn

3

Menüdeki tüm öğelerin Görünürlüğü ayarlandığında, uygulama çubuğu menüsü veya taşma menüsü Otomatik olarak gizle olur

Misal

private Menu menu_change_language;

...

...

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    ...
    ...
    menu_change_language = menu;
    menu_change_language.findItem(R.id.menu_change_language)
           .setVisible(true);

    return super.onCreateOptionsMenu(menu);
}

Diğer parçaya gitmeden önce aşağıdaki kodu kullanın:

if(menu_change_language != null){                 
    menu_change_language.findItem(R.id.menu_change_language)
       .setVisible(false);
}

2

https://stackoverflow.com/a/21215280/466363 - Cevap Alterno ve Sufian tarafından

  • ActivityCompat.invalidateOptionsMenu (), onPrepareOptionsMenu () 'da geri aramaz; sadece menüyü doğrudan güncelleyin.
  • Benim someMethod () bile onCreateOptionsMenu () önce birkaç yerden çağırılır, bu yüzden mMenu! = Null kontrol gerekir.
  • API 8 kullanarak çalışmalıdır

.

private Menu mMenu;
   @Override
   public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
       inflater.inflate(R.menu.track_fragment, menu);
       mMenu = menu;
       }
   ...
   private void someMethod() {
   ...
       if (mMenu != null) {
          MenuItem item = mMenu.findItem(R.id.new_track);
          if (item != null) {
               item.setVisible(false);
               ActivityCompat.invalidateOptionsMenu(this.getActivity());
           }
       }
   ...
   }
  • ActivityCompat.invalidateOptionsMenu (), onPrepareOptionsMenu () 'da geri aramaz; sadece menüyü doğrudan güncelleyin.

  • Benim someMethod () bile onCreateOptionsMenu () önce birkaç yerden çağırılır, bu yüzden mMenu! = Null kontrol gerekir.

  • API 8 kullanarak çalışmalıdır

2

Her şeyi yukarıdaki yanıtlarda olduğu gibi yaptıysanız, ancak bir menü öğesi hala görünürse, benzersiz kaynağa başvurduğunuzdan emin olun . Örneğin, onCreateOptionsMenu veya onPrepareOptionsMenu'da

@Override
public void onPrepareOptionsMenu(Menu menu) {
    super.onPrepareOptionsMenu(menu);
    MenuItem menuOpen = menu.findItem(R.id.menu_open);
    menuOpen.setVisible(false);
}

Ctrl + R.id.menu_open'e tıklayın ve yalnızca bir menü dosyasında var olup olmadığını kontrol edin. Bu kaynağın zaten herhangi bir yerde kullanıldığı ve bir etkinliğe yüklendiği durumda, orada saklanmaya çalışır.


2

Bir menüdeki tüm öğeleri tek bir komutla gizlemenin en iyi yolu xml menünüzde "grup" kullanmaktır. Taşma menünüzde olacak tüm menü öğelerini aynı grubun içine eklemeniz yeterli.

Bu örnekte her zaman gösterilecek iki menü öğesi (normal öğe ve arama) ve üç taşma öğesi vardır:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <item
        android:id="@+id/someItemNotToHide1"
        android:title="ITEM"
        app:showAsAction="always" />

    <item
        android:id="@+id/someItemNotToHide2"
        android:icon="@android:drawable/ic_menu_search"
        app:showAsAction="collapseActionView|ifRoom"
        app:actionViewClass="android.support.v7.widget.SearchView"
        android:title="Search"/>

    <group android:id="@+id/overFlowItemsToHide">
    <item android:id="@+id/someID" 
    android:orderInCategory="1" app:showAsAction="never" />
    <item android:id="@+id/someID2" 
    android:orderInCategory="1" app:showAsAction="never" />
    <item android:id="@+id/someID3" 
    android:orderInCategory="1" app:showAsAction="never" />
    </group>
</menu>

Ardından, etkinliğinizde (onCreateOptionsMenu'da tercih edilir), tüm menü öğelerinin görünürlüğünü false veya true olarak ayarlamak için setGroupVisible komutunu kullanın.

public boolean onCreateOptionsMenu(Menu menu) {
   menu.setGroupVisible(R.id.overFlowItems, false); // Or true to be visible
}

Bu komutu etkinliğinizin başka bir yerinde kullanmak istiyorsanız, menü sınıfını yerel olarak kaydettiğinizden emin olun ve her zaman menünün boş olup olmadığını kontrol edin, çünkü createOptionsMenu'dan önce çalıştırabilirsiniz:

Menu menu;

public boolean onCreateOptionsMenu(Menu menu) {
       this.menu = menu;

}

public void hideMenus() {
       if (menu != null) menu.setGroupVisible(R.id.overFlowItems, false); // Or true to be visible       
}


1

Ben daha iyi bir yaklaşım menü için üye değişkeni kullanmak, onCreateOptionsMenu () başlangıç ​​ve seçenekler menüsünü geçersiz kılma, sonradan setVisible () kullanmak olacağını düşünüyorum.


1

bu kod benim için çalıştı

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.main_menu,menu);
    if (Application.sharedPreferences.getInt("type",1) == 2)
    {
        menuItem = menu.findItem(R.id.menu_travel_orders);
        menuItem.setVisible(false);
    }
    return super.onCreateOptionsMenu(menu);
}

1

Bu Yaklaşım benim için çalıştı:

private  Menu thismenu;

if (condition)
{
   if(thismenu != null)
   {
       thismenu.findItem(R.id.menu_save).setVisible(true);
       Toast.makeText(ProfileActivity.this, 
    ""+thismenu.findItem(R.id.menu_save).getTitle(),
                Toast.LENGTH_SHORT).show();
   }else
   {
       thismenu.findItem(R.id.menu_save).setVisible(false);
   }
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
   getMenuInflater().inflate(R.menu.profile_menu, menu);
   thismenu = menu;

   return true;
}

1

Bir aktiviteden, kapsama erişimi olmayan bir menü öğesine erişmeye çalışıyorsunuz. Görünüm ne etkinlik ne de düzen ile bağlı olmadığından, menü öğesini bulma çağrısı null değerini döndürür de aradığınız .

Menü öğeleri, " Gezinme Çubuğu " gibi karşılık gelen etkinliğe bağlanan öğelerle bağlanır.

Bu nedenle, etkinlikteki bu görünümleri () başlatın ve ardından bu görünümleri içeren menü öğelerine erişin.

Navigation navView;
navView = findViewById(R.id.navigationView);

MenuItem item = navView.getMenu().findItem(R.id.item_hosting);
item.setVisible(false);

1

kullanım invalidateOptionsMenu()

aramak için onPrepareOptionsMenu(menu: Menu?)

onCreateOptionsMenu () yöntemini yalnızca başlangıç ​​menü durumunu oluşturmak ve etkinlik yaşam döngüsü sırasında değişiklik yapmak için kullanmamalısınız ...

Bir olay meydana geldiğinde ve bir menü güncellemesi gerçekleştirmek istediğinizde, sisteminPrepareOptionsMenu () çağrılmasını istemek için invalidateOptionsMenu () öğesini çağırmanız gerekir.

https://developer.android.com/guide/topics/ui/menus


0

Android kotlin, gizleme veya eylem çubuğunda bir menü öğesinin görünürlüğünü programlı olarak ayarlayın.

override fun onCreateOptionsMenu(menu: Menu): Boolean {
    val inflater = menuInflater
    inflater.inflate(R.menu.main_menu, menu)
    val method = menu.findItem(R.id.menu_method)
    method.isVisible = false //if want to show set true
    return super.onCreateOptionsMenu(menu)
}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.