【问题标题】:How to make contextual actionmode bar overlay my layout instead of "pushing" it down如何使上下文动作模式栏覆盖我的布局而不是“向下推”
【发布时间】:2013-07-02 15:07:31
【问题描述】:

我已经为我的应用程序实现了自己的视图组。由于各种原因,不能使用操作栏,因此在我的视图组中,我有自己的“操作栏”,一个在顶部,一个在底部。图 1 说明了我当前的布局。

如您所见,布局中有两个编辑文本,一切正常。

但是,当用户在任何编辑文本中选择一些文本时,会显示上下文操作模式栏。图 2 说明了这一点。

当这种情况发生时,动作模式栏会“下推”我的整个布局以获得空间。在平板电脑和其他大屏幕设备中,这是可以的,但在较小的设备中,尤其是在可见软键盘的情况下,剩余高度太小(横向无法使用)。

我想要做的是操作模式栏来覆盖我的布局,而不是如图 3 所示将其向下推。

这可能吗?

【问题讨论】:

    标签: android android-actionmode


    【解决方案1】:

    只需将<item name="android:windowActionModeOverlay">true</item> 添加到您的样式中即可。

    【讨论】:

    • 天哪。这个是“怎么会有人错过它?”的类型。工作就像一个魅力,非常感谢你!!!
    • 我没有为我工作。我正在使用“Theme.AppCompat.Light.NoActionBar”和工具栏
    • 我有同样的问题,但这个答案没有帮助。我有一个列表视图,当用户选择一个项目时,我会显示 cab(上下文操作栏)。因此,如果我选择列表中的第一个项目,则会显示 cab 并选中项目的复选框,但视图会被向上推。列表的最后一页将可见,我必须向上滚动才能看到被选中的第一个项目。进一步选择项目不会推送视图,因为 cab 已经存在。
    • 伙计们,直到我注意到我在 API 23 上进行测试并且我将 设置在 values 而不是 values-21 之前,它对我都不起作用。..跨度>
    • @user987760 如果与 AppCompatActivity 一起使用,则应使用 <item name="windowActionModeOverlay">true</item>(无 android: 前缀)
    【解决方案2】:

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

    <item name="windowActionModeOverlay">true</item>  
    

    你的风格。

    【讨论】:

    • 也许这应该变成被接受的答案。当我在 13 年发布原始答案时,我认为 AppCompat 甚至都不是一回事。
    【解决方案3】:

    这也可以通过以下方式以编程方式完成:

     getWindow().requestFeature(Window.FEATURE_ACTION_MODE_OVERLAY);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多