我在工具栏上遇到了一个非常奇怪的问题。我的团队目前使用工具栏的方式是通过包装类,我们称之为WrapToolbar
。
所以WrapToolbar
会在内部设置一个Toolbar
,并公开一些常见的Toolbar
函数。诸如setTitle
,getTitle
等都是可用的。
此WrapToolbar
还会设置默认图标。这样,WrapToolbar
的所有用法都将有此图标可用于需要它的屏幕。
这种方法的问题在于,对于需要其他图标的屏幕,必须通过菜单XML和onCreateOptionsMenu
功能添加它们。
当我们这样做时,带有WrapToolbar
的默认图标设置被推到左侧,菜单XML中的新图标被添加到最后。
这对我们来说一直很好,直到最近需求发生变化,现在要求默认图标始终位于末尾。
我目前正在考虑围绕工具栏进行自定义包装的想法,该包装器公开了添加图标、获取标题、设置标题等功能。这样,我们可以按任何顺序放置图标,并在工具栏的外观上具有最大的灵活性。
我正在寻找一些关于它可能是什么样子的指导。我还想得到一些反馈,了解我最初解决这个问题的想法是否在某些我没有预见到的方面存在缺陷。
菜单具有基于android:menuCategory
属性的内置排序 - 您可以使用android:menuCategory="secondary"
将菜单项(如默认图标)推送到列表末尾 - 所有没有menuCategory
的 MenuItems 将显示在其左侧。