5

Ho un'app con un tema NoActionBar. Nella mia attività principale ho un menu di opzioni che ho creato manualmente nella parte superiore dello schermo (o utilizzando il pulsante delle opzioni del dispositivo incorporato).Creazione di un menu di opzioni popup in una barra delle azioni contestuale

In questa attività principale, ho un frammento con un listView dove applico la funzionalità click lungo modalità di azione, per mostrare la barra di azione contestuale (CAB) per ulteriori opzioni utente.

Ora, provo ad aggiungere un elemento di opzioni al mio CAB in modo che conterrà alcune opzioni come selezionare tutti gli elementi in listView, ma dal momento che è un elemento del CAB, non posso davvero mostrare il menu popup come in un attività regolare. Inoltre, desidero che tutte le opzioni del menu callback (come onOptionsItemSelected) rimangano nel contesto del CAB, per poter continuare a eseguire azioni sul CAB.

Ecco il codice della mia CAB:

<?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:id="@+id/action_delete" 
     android:orderInCategory="100" 
     app:showAsAction="always" 
     android:icon="@drawable/ic_action_delete" 
     android:title="Delete"/> 

    <item 
     android:id="@+id/action_overflow" 
     app:showAsAction="always" 
     android:orderInCategory="200" 
     android:icon="@drawable/ic_action_overflow" 
     android:title="Options" 
     android:visible="false"/> 

</menu> 
+0

non è chiaro cosa esattamente ciò che vuoi ottenere: vuoi che la barra di azione contestuale appaia esattamente come appare nelle attività con i temi della barra delle azioni, ma dall'altra parte non mostra affatto la barra di azione per impostazione predefinita? –

risposta

2

A quanto pare ho perso il costruito in funzione della CAB - dotato di un menu di overflow che crolla alcuni degli elementi delle azioni una volta che lo schermo è troppo piccolo per mostrare il centro commerciale.

Un'altra manipolazione che deve essere fatto al fine di comprimere sempre determinate azioni sotto quel menu di overflow è quello di impostare per ciascuno di essi:

android:showAsAction="never" 
app:showAsAction="never" 

Quindi, dire che abbiamo 3 azioni (eliminare, selece_all, aggiungiamo) in cabina, e vogliamo che due di loro (select_all, aggiungi) per essere crollato sempre sotto il costruito nel menu di overflow, imposteremo questo in XML del CAB:

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

<item 
    android:id="@+id/action_delete" 
    android:orderInCategory="100" 
    mm:showAsAction="always" 
    android:icon="@drawable/ic_action_delete" 
    android:title="Delete"/> 

<item 
    android:id="@+id/action_select" 
    android:orderInCategory="200" 
    android:showAsAction="never" 
    mm:showAsAction="never" 
    android:title="@string/select_all"/> 

<item 
    android:id="@+id/action_add" 
    android:orderInCategory="300" 
    android:showAsAction="never" 
    mm:showAsAction="never" 
    android:title="@string/button_add"/> 

Problemi correlati