ActionMode显示时ToolBar不隐藏问题

今天接受一个Bug,如下图,就是在点击某个按钮呼出ActionMode的时候,ToolBar并没有消失,而是被顶到ActionMode的下面。起初以为是开发小组里面的其他成员在写issue的时候不小心修改了布局的问题,于是拼命翻看提交记录,想从中找出问题,后来发现并没有对ActionMode做出修改,于是在网上找了ActinMode的详细使用,发现了其中的问题!

ActionMode显示时ToolBar不隐藏问题

在网上看到ActionMode和ToolBar一起使用时需要在使用界面主题样式对应的styles.xml文件中添加加一行 <item name="windowActionModeOverlay">true</item>

在看看项目中的styles文件,居然是<item name="android:windowActionModeOverlay">true</item>修改过来就好了,真的神奇,就差一个Android,怎么差距那么大呢?再看看它们俩的区别!

<style name="NoHeaderDark" parent="MaterialNavigationDrawerTheme">
        <item name="drawerType">@integer/DRAWERTYPE_CUSTOM</item>
        <item name="android:windowBackground">@color/black</item>
        <item name="android:switchStyle">@style/DarkSwitch</item>
        <item name="android:windowActionModeOverlay">true</item>
        <!--<item name="multipaneSupport">true</item>-->
        <item name="defaultSectionLoaded">0</item>
        <item name="toolbarElevation">true</item>
        <item name="colorSwitchThumbNormal">@color/colorSwitchThumbNormal</item>
        <item name="colorControlActivated">@color/colorControlActivated</item>
    </style>
  • <item name="windowActionModeOverlay">true</item>

  • <item name="android:windowActionModeOverlay">true</item>
    这些都是OptionsMenu的属性 ifRoom表示如果Actionbar上有空间,就显示这个menu,至于他们有什么区别,还了解,于是问了CSDN里面的大神们,收到一个比较满意的答案。
    这里写图片描述
    如果有更好解释,欢迎一起讨论交流。
    问题解答链接

ActionMode使用的注意事项:

  • ActionMode.Callback 接口使用android.support.v7.view.ActionMode 而不是 android.view.ActionMode
  • Activity需要继承AppCompatActivity
  • 通过startSupportActionMode启动ActionMode而不是startActionMode

猜你喜欢

转载自blog.csdn.net/cqx13763055264/article/details/79850457
今日推荐