如何使上下文动作模式栏覆盖我的布局而不是"推"它

ChD*_*ers 39 android android-actionmode

我为我的应用程序实现了自己的viewgroup.由于各种原因,使用操作栏不是一个选项,所以在我的视图组中,我有自己的"动作栏",一个在顶部,一个在底部.图1说明了我当前的布局.

图片1

正如您所看到的,布局中有两个edittexts,一切看起来都不错.

但是,当用户在任何edittexts中选择一些文本时,将显示上下文动作模式栏.图2说明了这一点.

图2

当发生这种情况时,actionmode bar会"按下"我的整个布局以获得它的空间.在平板电脑和其他大屏幕设备中,这是可以的,但在较小的设备中,尤其是软键盘可见时,剩余高度太小(横向不可用).

我想要做的是动作模式栏来覆盖我的布局而不是按下它,如图3所示.

图3

那可能吗?

mar*_*erf 53

只需添加<item name="android:windowActionModeOverlay">true</item>你的风格.

  • 我没有为我工作.我正在使用"Theme.AppCompat.Light.NoActionBar"和一个工具栏 (16认同)
  • @ user987760如果与AppCompatActivity一起使用,你应该使用`<item name ="windowActionModeOverlay"> true </ item>`(没有`android:`前缀) (9认同)
  • Dudes,直到我注意到我在API 23上测试并且我在`values`中设置了<item>而不是在`values-21`中时它才对我有用. (6认同)
  • OMG这个类型是"怎么会有人错过?".工作就像一个魅力,非常感谢你! (2认同)

Gir*_*hai 34

windowActionModeOverlay与appcompat工具栏一起使用,请使用

<item name="windowActionModeOverlay">true</item>  
Run Code Online (Sandbox Code Playgroud)

你的风格.

  • 也许这应该变成公认的答案。当我在 13 年发布原始答案时,我认为 AppCompat 根本就不是一回事。 (2认同)