自定义工具栏中的溢出菜单图标

时间:2017-12-14 15:43:39

标签: android android-toolbar android-optionsmenu

我正在使用带有菜单图标的自定义工具栏。现在单击此菜单图标我想显示选项菜单。怎么办呢。

我尝试将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);
}

有了这个,我可以在点击图标时看到溢出菜单。但问题是,它还将默认菜单图标添加到工具栏,因此我的工具栏现在有两个菜单。如何只有我的自定义工具栏图标打开选项菜单

2 个答案:

答案 0 :(得分:3)

如果要自定义默认溢出菜单图标..

使用工具栏的setOverflowIcon方法。

像:

 toolbar.setOverflowIcon(ContextCompat.getDrawable(this, R.drawable.your_icon));

答案 1 :(得分:1)

我使用主题

工作了
<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>