2015-05-23 11 views

Antwort

30

Sie einfach PopupMenu, zum Beispiel den folgenden auf eine Schaltfläche, wenn darauf geklickt verwenden:

public void showPopup(View v) { 
    PopupMenu popup = new PopupMenu(this, v); 
    MenuInflater inflater = popup.getMenuInflater(); 
    inflater.inflate(R.menu.actions, popup.getMenu()); 
    popup.show(); 
} 

Für mehr Informationen, lesen Creating a Popup Menu: http://developer.android.com/guide/topics/ui/menus.html

+0

Wo soll ich diese Methode aufrufen? Hier –

+1

ist ein Beispiel: https://stackoverflow.com/a/47526180/1098019 –

+0

Artikel klicken Zuhörer wie folgt hinzugefügt werden können: popup.setOnMenuItemClickListener (neu PopupMenu.OnMenuItemClickListener() { @Override public boolean onMenuItemClick (MenuItem item) { switch (item.getItemId()) { Fall R.id.menuItem1: Rückgabe wahr; Standard: Rückgabe false; } } }); –

1

Ich glaube nicht, Sie können ein Menü ohne Aktionsleiste hinzufügen. Aber es gibt zwei Ansätze, die ich mir vorstellen kann.

  1. Erstellen und Aktion bar der gleichen Farbe wie der Hintergrund, so dass es nicht angezeigt wird, fügen Sie als nächstes die Menüs hinzu.

  2. Fügen Sie einfach eine Schaltfläche in der oberen rechten Ecke des Bildschirms hinzu und legen Sie die Dropdownliste im Layout ab.

oder ein Pop-up-Menü verwenden wie von @ M-Y

13

einer Symbolleiste, um das Layout hinzufügen und transparent machen. Das ist die beste Lösung, um Menüelemente zu einem Layout hinzuzufügen und gleichzeitig das Erscheinungsbild zu erhalten, dass es keine Aktionsleiste/Symbolleiste gibt.

Layout-

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <!-- The rest of your code here --> 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="56dp" 
     android:background="@android:color/transparent"/> 

</RelativeLayout> 

Theme

<resources> 
    <!-- Base application theme. --> 
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
     <!-- Customize your theme here. --> 
    </style> 
</resources> 

Beispiel für das Menü Aufpumpen Einstellung Titel, Hörer-Menü klicken.

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
toolbar.setTitle("Toolbar"); 
toolbar.inflateMenu(R.menu.menu_main); 
toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() { 
    @Override 
    public boolean onMenuItemClick(MenuItem item) { 
     if (item.getItemId() == R.id.action_refresh) { 

     } 
     return false; 
    } 
}); 

Die Symbolleiste nicht als Aktionsleiste festlegen. Das Thema entfernt es vollständig.

+0

Bitte geben Sie einen Beispielcode – dzikovskyy

+0

Dank genau nach dem gleichen suchen – kplshrm7

1
<ImageButton 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:src="@drawable/ic_overflow_holo_dark" 
    android:contentDescription="@string/descr_overflow_button" 
    android:onClick="showPopup" /> 

Fügen Sie die obigen Zeilen in der XML-Datei hinzu, in der Sie dieses Menü anzeigen möchten.

public void showMenu(View v) { 

    PopupMenu popup = new PopupMenu(this, v); 
    // This activity implements OnMenuItemClickListener 
    popup.setOnMenuItemClickListener(this); 
    popup.inflate(R.menu.actions); 
    popup.show(); 
} 

@Override 
public boolean onMenuItemClick(MenuItem item) { 

    switch (item.getItemId()) { 
     case R.id.archive: 
      archive(item); 
      return true; 
     case R.id.delete: 
      delete(item); 
      return true; 
     default: 
      return false; 
    } 
} 

Für weitere Informationen gehen durch: https://developer.android.com/guide/topics/ui/menus.html

+0

'onMenuItemClick' existiert nicht worüber sprichst du? – user25

+0

'OnMenuItemClick' funktioniert vollständig bis jetzt. [sieh dies] (https://developer.android.com/guide/topics/ui/menus.html#PopupMenu) – Aashish

Verwandte Themen