2

我想删除为上下文操作栏中的标题分配的视图。

这是我要删除的

请注意,我不想设置标题;我想要View完全消失。这是为了留出更多空间,以便操作可以显示在菜单栏上,而不是被放到溢出菜单中。

另请注意,我不想设置android:showAsAction="always". 我希望 Android 决定图标有多少空间。我只是希望通过删除为标题保留的空白区域来获得更多空间。

更新

我尝试过的事情:

  • ActionMode.setCustomView(null)
  • ActionMode.setTitleOptionalHint(true)
  • ActionMode.setTitle("").

不幸的是,这些都没有奏效。


更新 2

事实证明,我想要的结果不可能以我尝试的方式实现。删除标题不会为更多图标留出空间;Android 根据设备屏幕大小设置硬限制。如果您想在菜单中添加更多图标,请参阅@adneal 提供的答案。

如果您实际上有一个标题(如下所示)并且想要删除它,那么您可以调用ActionMode.setTitle(""),正如@CommonsWare 在接受的答案中提供的那样。

带有标题的菜单示例

4

5 回答 5

5

另请注意,我不想设置 android:showAsAction="always"

如果您想要在 中使用两个以上的操作按钮,则必须这样做ActionBar,至少在较小的屏幕上是这样。ActionBarPolicy确定要放置多少个操作按钮,ActionBar默认数量为 2。

覆盖该默认值的唯一方法是让您的MenuItem“始终”出现。

    @Override
    public boolean onCreateActionMode(ActionMode mode, Menu menu) {
        mode.setTitle(null);

        for (int i = 0; i < 5; i++) {
            menu.add("Item " + (i + 1)).setIcon(android.R.drawable.sym_def_app_icon)
                    .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
        }
        return true;
    }

结果

于 2014-04-23T19:48:48.680 回答
2

尝试调用setCustomView(null).ActionMode

如果这不起作用,请尝试setTitleOptionalHint(true)使用ActionMode.

如果这不起作用,请尝试setTitle("")使用ActionMode.

于 2014-04-23T19:36:28.140 回答
2

在 adneal 的回答之后,我遇到了如何处理这个动作的问题。所以我发现这个解决方案更简单:仍然使用xml/inflater但添加

 menu.findItem(R.id.whatever).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
于 2015-06-26T12:33:53.420 回答
0
@Ovrride
protected void onCreate(Bundle savedInstanceState……

requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

setContentView(R.layout.prva.xml);
于 2014-04-23T20:19:23.760 回答
0

我尝试了此处提供的解决方案并提出了一些意见:

  • 标题的视图始终包含在视图层次结构中(-> Android Studio 的 Layout Inspector)但它在后台,将被内容覆盖。
  • setContentView 将提供的视图添加到layuot(在前台)。所以setContentView(null)不会删除标题的视图。(在布局检查器中仍然可见)
  • app:showAsAction="always"膨胀布局时被覆盖。您可以设置始终显示 3 个项目,但只会显示 2 个项目。

但是.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS)在膨胀菜单后以编程方式设置是可行的。

于 2017-01-17T18:41:12.363 回答