5

Mam aplikację z motywem nr NoActionBar. W mojej głównej działalności mam menu opcji, które utworzyłem ręcznie na górze ekranu (lub korzystając z wbudowanego przycisku opcji urządzenia).Tworzenie menu opcji wyskakujących w kontekstowym pasku działań

W tej głównej działalności, mam fragment z ListView gdzie zastosowanie trybu działania długim kliknięciem funkcjonalność, aby pokazać pasek działań kontekstowych (CAB) w celu uzyskania możliwości użytkowników.

Teraz próbuję dodać element opcji do mojej CAB, więc będzie zawierał niektóre opcje, takie jak wybieranie wszystkich pozycji w liścieViewView, ale ponieważ jest to element CAB, nie mogę tak naprawdę wyświetlić menu podręcznego, jak w regularna aktywność. Co więcej, chcę, aby wszystkie wywołania zwrotne menu opcji (takie jak onOptionsItemSelected) pozostały w kontekście CAB, aby móc kontynuować wykonywanie działań na CAB.

Oto kod mojego 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

to nie jasne co dokładnie chcesz osiągnąć: czy kontekstowy pasek akcji ma wyglądać tak, jak wygląda w działaniach z motywami paska zadań, ale z drugiej strony nie pokazuje domyślnie paska akcji? –

Odpowiedz

2

Najwyraźniej brakowało mi wbudowaną cechą CAB - wbudowany w menu przelewowym, że zapada się niektóre z elementów działań gdy ekran jest zbyt mały, aby pokazać Centrum handlowe.

Kolejna manipulacja, którą należy zrobić, aby zawsze zapaść niektórych działań w ramach tego menu przepełnienia jest ustawiony dla każdego z nich:

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

więc powiedzieć, że mamy 3 akcje (usuwanie, selece_all, dodaj) w kabinie, i chcemy, dwa z nich (select_all dodaj), aby być zwinięte zawsze pod wbudowanego menu przelewowym, będziemy ustawić to w xml kabiny:

<?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"/>