问题标签 [contextual-action-bar]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
225 浏览

android - ListView 允许长按上下文菜单,但也允许选择文本

我不确定这是否可能,但我想以某种方式在列表的行上设置文本以供复制,而且,长按以调出上下文菜单。

我知道选择单个文本需要长按,但它被我需要长按整行以显示上下文菜单这一事实所覆盖。

我确定其他人遇到过这个问题?

编辑:好的,我刚刚意识到不仅可以通过长按选择文本,还可以通过双击/按下来选择文本。所以可以在这种情况下使用

0 投票
1 回答
54 浏览

android - 构建类似上下文操作栏的东西

我正在做一个项目,它几乎完成了。但我已经被困在一个问题上这么久了。我的应用程序使用上下文操作栏来选择列表项,但您必须知道,上下文操作栏不适用于旧版本的 android,例如姜饼,我想保持对它们以及 11+ 的兼容性。所以我决定创建两个布局,一个使用实际的上下文操作栏,另一个使用我自己定制的 CAB。我开始构建这个项目,直到现在一切都很顺利。

所以我使用下面的代码来捕获第一次长按和其他单击以选择项目:

只有一个问题,那就是当我选择一个项目并且我向下滚动时也选择了很多其他项目。现在我知道是什么导致了这个问题,我试图通过将这些行添加到我的自定义适配器来解决它:

但是由于每次用户选择一个项目时我都无法回忆起这种方法,所以它第一次仍然显示相同的行为,但是如果我再次上下滚动,一切正常。

如果有人能给我一个解决方案,我将不胜感激。

PS如果你知道实现我想要的更好的方法,请告诉我,但我最多必须在 2 天内完成这个项目,所以请提出一些不费时的建议。

提前致谢

0 投票
0 回答
525 浏览

android - ListView 在 Contextual ActionBar 中标记选定的列表条目 onItemLongClick

ListView在主细节视图的意义上实现了一个:根据列表项使用细节onItemClick()调用 new 。Activity

onItemLongClick调用ActionMode.Callback以提供多个列表项的选择。我已经解决了这个问题,以避免onItemClick()在应该通过返回来选择项目时true调用onItemLongClick()

问题是在我单击一个项目并从活动返回后进行选择/可视化。

请不要标准listSelector。我不确定这是否是正确的方法/解决方案。我试图实现一个自定义listSelector,但它不能正常工作。

有什么建议么?

的 XML ListView

片段代码

0 投票
1 回答
1439 浏览

android - 更改上下文操作栏复选标记/完成可绘制?

有没有一种好方法来更改上下文操作栏复选标记可绘制而不为整个操作栏创建自定义视图?

上下文操作栏

0 投票
1 回答
100 浏览

android - CAB(上下文操作栏)

我有一个问题,我的问题是“我们可以通过单击操作栏上的按钮或操作项在操作栏上的 CAB 中显示默认的 FIND 功能吗?”。请你的想法

0 投票
1 回答
1204 浏览

android - 如何使用上下文操作栏处理 hamburger-icon 和 up-caret-icon?

好的,所以通常我不是那种问的人,但我无法解决我的问题。所以我的第一个 StackOverflow-Question。

我有一个带有导航抽屉的活动,它触发了一些片段,这些片段有自己的子片段。

当用户在应用程序中深入时,“汉堡包”图标被替换为向上插入符号。在按下插入符号或后退键时,子片段从后台弹出,汉堡图标又回来了。

这是子片段中发生的情况:

在活动中:

到目前为止,一切都很好。

当我们深入亚片段时,问题就开始了。子片段有一个列表,onLongClickItem 显示一个上下文操作栏,允许用户更改这些列表项。

如果打开该上下文操作栏并按下后退按钮,它会关闭(如预期的那样)但也会将向上插入符号更改为抽屉-汉堡图标-thingie。当然,我确实理解为什么会发生这种情况,但我没有看到(或能够在网上找到)一个干净的解决方案。

我是不是走错了路,还是我只是在这里错过了一个简单的步骤?我正在考虑将 setDrawerIndicatorEnabled 移动到 onBackStackChangedListener 并在那里侦听标记的 backStackItem。

但我想;在我开始弄乱我的所有代码之前,让我们先在野外问一个问题。

谢谢

0 投票
1 回答
1458 浏览

android - 从 ListFragment 中的自定义 CursorAdapter 启动操作模式

我正在尝试为上下文操作栏启动操作模式,但我遇到了问题。我将自定义 CursorAdapter 用于扩展 ListFragment 的类,该类包含在扩展 ActionBarActivity 的类中。

结构
GameListActivity(ActionBarActivity)
----GameListFragment(ListFragment) --------custom_adapter
(CursorAdapter)

我正在尝试在 custom_adapter 中的 onClick 侦听器中启动操作模式。目前,我在 ActionBarActivity 中有 ActionMode.Callback:

我觉得这似乎更适合 ListFragment,但我已经尝试过,但运气不佳。

在我的自定义 CursorAdapter 中,我有一个功能:

我得到的错误是:

两个类都导入(我认为)是正确的类:

我是这个链接的原创者,但他的实现似乎也不适合我。

有什么办法可以做我正在做的事情吗?

0 投票
1 回答
6427 浏览

android - 在 Android 的 WebView 中选择文本时如何覆盖上下文操作栏?

我在 Google 上搜索了很多,并在 stackoverflow 中找到了一些教程和答案,但我在解决这个问题时遇到了一些困难。

我有一个带有 WebView 的片段,当用户选择我的 Web 视图的某些文本时,我想显示我的自定义上下文操作栏。我这里有两个主要问题:

  • 1 目前,当用户在 Web 视图的任何部分长按时会显示我的自定义 CAB。
  • 2 当用户在我的 web 视图的某些文本中执行长单击时,未选择文本。

我当前的一些代码:

自定义界面:

自定义 Web 视图

在我的片段中,我有这个:

0 投票
1 回答
419 浏览

android - 嵌套上下文操作栏

我正在自定义的WebView.

我的要求是从第一个 CAB 中选择一个特定选项将打开第二个 CAB。这是最终目标:

当用户进入选择模式时,会出现这个 CAB。 当他们点击荧光笔时,会出现第二个 CAB。

我已经做到了,但选择无法正常工作。我知道它看起来是正确的,但是如果用户点击其他三个图标中的任何一个,结果如下:

点击其他图标。 当不需要时,选择会挂起。

如果用户在按下四个初始图标中的任何一个后触摸选择,则应用程序由于空指针异常而崩溃。

当用户在选择操作后触摸延迟选择时,应用程序会尝试访问ActionMode(我们称之为firstActionMode)创建带有图标的 CAB 以使其无效/刷新。但是,firstActionMode在创建带有颜色的 CAB 时被破坏,(调用它secondActionMode)导致空指针异常。


为了清除选择,我发现clearFocus()onDestroyActionMode(firstActionMode)方法内调用可以很好地完成工作。

secondActionMode但是,当实现这一点时,在创建其 CAB时选择不会持续存在:

和以前一样,但是... 单击任何图标时选择消失。

从这一点选择颜色实际上会产生所需的功能。然而,虽然这“有效”,但它(最不幸的是)不符合我的要求。当显示由创建的 CAB 时,我需要选择保持可见和功能secondActionMode


这是我的自定义类 ( WebView) 及其嵌套ActionMode的代码


如何解决这个问题?任何和所有的帮助表示赞赏。

0 投票
1 回答
516 浏览

android - 如何向 Android 默认上下文操作栏添加更多选项

我们知道,默认情况下,在视图上选择一些文本后,android 会显示带有一些默认选项的上下文操作栏 (CAB),例如:复制、剪切、全选...

现在,我想要一个应用程序(只有 2 个选项:ON/OFF),如果我打开它,一些其他选项将添加到默认 CAB。如果我将其关闭,我的自定义选项将从 Android 默认 CAB 中删除。

我的问题是:是否可以在此默认 CAB 中添加/删除某些选项?我怎样才能进行上述应用程序?

谢谢!