2017-01-19 11 views
1

Вот мой menu.xmlКак предотвратить перемещение меню ActionBar при выборе?

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

<item 
    android:id="@+id/filter" 
    android:icon="@drawable/filter" 
    app:showAsAction="always" 
    android:title="Filter"> 

    <menu> 
     <item 
      android:id="@+id/action_dropdown1" 
      android:title="free" 
      android:checkable="true" 
      app:showAsAction="always" 
      android:icon="@drawable/ic_free"/> 
     <item 
      android:id="@+id/action_dropdown2" 
      android:title="paid" 
      android:icon="@drawable/ic_paid"> 

      <menu> 
       <group android:checkableBehavior="all"> 

       <item 
        android:id="@+id/paid_cat1" 
        android:title="0-50" 
        android:checkable="true" 
        android:icon="@drawable/ic_paid"/> 
       <item 
        android:checkable="true" 
        android:id="@+id/paid_cat2" 
        android:title="51-100" 
        android:icon="@drawable/ic_paid"/> 

       <item 
        android:checkable="true" 
        android:id="@+id/paid_cat3" 
        android:title="101-500" 
        android:icon="@drawable/ic_paid"/> 

       <item 
        android:checkable="true" 
        android:id="@+id/paid_cat4" 
        android:title="500-10,000" 
        android:icon="@drawable/ic_paid"/> 

       <item 
        android:checkable="true" 
        android:id="@+id/paid_cat5" 
        android:title="show all" 
        android:icon="@drawable/ic_paid"/> 

       </group> 

      </menu> 
      </item> 

     <item 

      android:id="@+id/action_find" 
      android:title="find" 
      android:icon="@drawable/ic_search_black_24dp"/> 

    </menu> 
    </item> 

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

Что я хочу, чтобы достичь является пользователь должен иметь возможность выбрать несколько пунктов меню, когда при нажатии на флажок в меню ... но я как только нажмите пункт он исчезнет

или есть лучшая альтернатива для достижения того же я думал использовать блесну как хорошо, но он ведет себя так же

ответ

0

Вы можете использовать всплывающее меню с пользовательским макетом прикрепленного к пункту меню.
Показать всплывающее меню, когда "оплачено" пункт меню щелкнул -

Это пользовательский макет checkable_items.xml -

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="wrap_content" 
android:layout_height="match_parent" 
android:background="@android:color/white" 
android:orientation="vertical"> 

<CheckBox 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="0-50" /> 

<CheckBox 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="51-100" /> 

<CheckBox 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="101-500" /> 

<CheckBox 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="500-10,000" /> 

</LinearLayout> 

Обновление файла меню для -

<?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" 
xmlns:tools="http://schemas.android.com/tools" 
tools:context=".MainActivity"> 

<item 
    android:id="@+id/filter" 
    android:icon="@android:drawable/ic_dialog_email" 
    android:title="Filter" 
    app:showAsAction="always"> 

    <menu> 
     <item 
      android:id="@+id/action_dropdown1" 
      android:checkable="true" 
      android:icon="@android:drawable/btn_dialog" 
      android:title="free" 
      app:showAsAction="always" /> 
     <item 
      android:id="@+id/action_dropdown2" 
      android:icon="@android:drawable/btn_minus" 
      android:title="paid"> 

     </item> 

     <item 

      android:id="@+id/action_find" 
      android:icon="@android:drawable/ic_dialog_email" 
      android:title="find" /> 

    </menu> 
</item> 

<item 
    android:id="@+id/action_search" 
    android:icon="@android:drawable/ic_menu_search" 
    android:title="Search" 
    app:actionViewClass="android.support.v7.widget.SearchView" 
    app:showAsAction="always" /> 
</menu> 

Вы можете использовать mPopupWindow.dismiss(), чтобы закрыть всплывающее окно в любое время. Надеюсь, это поможет!

enter image description here

+0

Его работает, но иконки не отображаются в всплывающем окне, как они отображаются в меню –

+0

его doning трюк, но вещь в popwindow иконки не видны, и в основном то, что мы делаем здесь, когда меню отклонять мы показывают popwindow, и он выглядит совершенно по-другому, так или иначе, чтобы предотвратить отключение меню. Любая помощь будет применена. –

+0

в значках popwindow не отображается - это настраиваемый макет. Также вы можете добавить значки слева и перенести флажок вправо, чтобы он выглядел точно так, как вы хотите. –

 Смежные вопросы

  • Нет связанных вопросов^_^