ToolBar中弹出菜单与ToolBar的位置设置

<!--溢出[弹出]菜单样式 parent相当于继承【可以不要parent】-->
<style name="OverflowMenuStyle"   parent="@style/Widget.AppCompat.PopupMenu.Overflow">
  <!-- 是否覆盖锚点,默认为true,即盖住Toolbar -->
  <item name="overlapAnchor">false</item>
  <item name="android:dropDownWidth">wrap_content</item>
  <item name="android:paddingRight">5dp</item>
  <!-- 弹出层背景颜色 -->
  <item name="android:popupBackground">@color/darkturquoise</item>
  <!-- 弹出层垂直方向上的偏移,即在竖直方向上距离Toolbar的距离,值为负则会盖住Toolbar -->
  <item name="android:dropDownVerticalOffset">5dp</item>
  <!-- 弹出层水平方向上的偏移,即距离屏幕左边的距离,负值会导致右边出现空隙 --> 
  <item name="android:dropDownHorizontalOffset">0dp</item>
  <!-- 设置弹出菜单文字颜色 -->
  <item name="android:textColor">@color/white</item>
</style>

其中

  <!-- 是否覆盖锚点,默认为true,即盖住Toolbar -->
  <item name="overlapAnchor">false</item>

一直在用的是

  <!-- 是否覆盖锚点,默认为true,即盖住Toolbar -->
  <item name="android:overlapAnchor">false</item>

然后一直提示

image.png

然后换成上面的就恢复正常,不再提示。
并且这个参数的默认值是true,即如果没有这个参数,是覆盖ToolBar的,如下图所示:

image.png

把参数设置为false后,效果如下:

image.png

并且下面两个参数也可以设置锚点,即弹出菜单相对于ToolBar的位置

  <!-- 弹出层垂直方向上的偏移,即在竖直方向上距离Toolbar的距离,值为负则会盖住Toolbar -->
  <item name="android:dropDownVerticalOffset">5dp</item>
  <!-- 弹出层水平方向上的偏移,即距离屏幕左边的距离,负值会导致右边出现空隙 --> 
  <item name="android:dropDownHorizontalOffset">0dp</item>

这个问题困扰了我一个下午,Mark 一下。

推荐阅读更多精彩内容