Значок переполнения меню на пользовательской панели инструментов

Я использую пользовательскую панель инструментов со значком меню. Теперь, щелкнув этот значок меню, я хочу показать меню параметров. Как это может быть сделано.

Я попытался добавить onclicklistener к этому значку меню.

@Override
public void onClick(View v) {


    if(v.getId() == R.id.toolbarMenuIcon){
        openOptionsMenu();
    }

}

Это не сработало. Затем я добавил эти строки

setSupportActionBar(mBinding.customSelectToolbar.selectionModeToolbar);

в моих действиях oncreate() . Также сделал переопределение

@Override
public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.selection_mode_menu, menu);
    return super.onCreateOptionsMenu(menu);
}

С этим я могу видеть меню переполнения, когда я нажимаю значок. Но проблема в том, что он добавляет значок меню по умолчанию также на панель инструментов, и, таким образом, на моей панели инструментов теперь есть два меню. Как сделать так, чтобы только мой пользовательский значок на панели инструментов открывал меню параметров


person png    schedule 14.12.2017    source источник
comment
it adds the default menu icon?...добавляете ли вы пользовательский значок меню на панель инструментов?   -  person rafsanahmad007    schedule 14.12.2017
comment
да, у меня есть значок панели инструментовMenuIcon в моем макете панели инструментов. Я хочу показать меню параметров при нажатии на этот   -  person png    schedule 14.12.2017


Ответы (2)


Если вы хотите настроить значок дополнительного меню по умолчанию.

Используйте метод setOverflowIcon вашей панели инструментов.

как:

 toolbar.setOverflowIcon(ContextCompat.getDrawable(this, R.drawable.your_icon));
person rafsanahmad007    schedule 14.12.2017
comment
у меня все остальные значки на панели инструментов тоже настроены. Итак, невозможно ли иметь кнопку, которая действует как значок меню параметров при нажатии - person png; 14.12.2017
comment
похоже, вы хотите что-то вроде Это - person rafsanahmad007; 14.12.2017
comment
Также ваш вопрос не ясен... если вы установите пользовательский значок в качестве своего меню переполнения.... он также откроет параметры!.. вам нужно переопределить onOptionsItemSelected(MenuItem item)...to, чтобы определить поведение onClick вашего MenuItem.. - person rafsanahmad007; 14.12.2017
comment
Спасибо за ваш вклад. Я не хочу показывать всплывающее меню. если вы установите пользовательский значок в качестве дополнительного меню .... он также откроет параметры!. Этого не происходит, если я просто вызываю openOptionsMenu без установки setSupportActionBar(mytoolbar) . В этом случае oncreateOptionsmenu никогда не срабатывает. - person png; 14.12.2017
comment
'oncreateOptionsmenu` - это метод Actionbar, вызвав setSupportActionBar(mytoolbar), мы включаем панель инструментов как панель действий... без нее она никогда не будет работать, также я не понимаю, в чем проблема setSupportActionBar(mytoolbar)? также это не по теме вашего вопроса .. вам лучше сделать репост вашего вопроса еще раз ..! - person rafsanahmad007; 14.12.2017

У меня это работает, используя тему

<style name="OverFlow" parent="Widget.AppCompat.ActionButton.Overflow">
    <item name="android:src">@drawable/ic_menu_overflow</item>
    <item name="android:tint">...</item>
    <item name="android:width">..dp</item>
    <item name="android:height">..dp</item>

</style>

<style name="OnArrival.toolbarTheme" parent="Theme.OnArrival.Light">

    <item name="actionOverflowButtonStyle">@style/OverFlow</item>
</style>
person png    schedule 14.12.2017