问题标签 [android-actionmode]

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 回答
691 浏览

android - 选择句柄未出现在 WebView (Android 4.0-4.3)

我创建了一个自定义ActionMode.Callback,以便在WebView. 它在 Android 4.4 中运行良好,但在 4.1-4.3 中,选择句柄没有出现。我仍然可以对突出显示的单个单词执行自定义操作,但由于缺少句柄,无法更改选择。

此外,当ActionMode被销毁时,选择不会从屏幕上清除。相反,如果用户在其他地方点击以清除选择,ActionMode则不会破坏。

我什至不确定这clearFocus()是我应该调用的方法来尝试删除选择。我评论了那条线,4.4 中的行为没有改变;它仍然完美无缺。

可以做些什么来解决这些问题?


这是我目前的实现:

0 投票
5 回答
1446 浏览

android - 从上下文操作栏中删除标题

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

这是我要删除的

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

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

更新

我尝试过的事情:

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

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


更新 2

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

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

带有标题的菜单示例

0 投票
1 回答
3163 浏览

android - Webview 文本选择未清除

我已经ActionMode.CallbackWebView. 我遇到的问题是选择和操作模式状态不匹配。

当我长按时,一切开始都很好。

长按后,选择突出显示与上下文操作栏一起出现。

当我与其中一个按钮或WebView(不包括实际选择)交互时,ActionMode应该销毁,并且选择应该消失。

选择一个按钮,或在选择区域外触摸。 CAB 应该关闭,并且选择应该消失。

在 Android 4.4 KitKat 中,这正是发生的情况。


但是,这不是 4.1.1 - 4.3,Jelly Bean 中发生的事情。当我单击其中一个按钮时,不会删除选择。

点击上下文操作栏中的按钮。 点击按钮后,选择仍然存在。

当我在选择之外点击时,会发生相反的情况。选择被删除,但上下文操作栏仍保留在屏幕上。

选择开始后点击 <code>WebView</code>。 选择被清除,但上下文操作栏仍然存在。


这是我的代码CustomWebView

正如上面的评论所示,我认为问题出在clearFocus()方法上。当我删除该方法时,按下按钮会在 4.4 中留下选择,就像 Jelly Bean 中的行为一样。clearFocus()给出了 4.4 中的预期行为,但没有转移到早期的 API。(请注意,这clearFocus()对 KitKat 来说并不新鲜;它自 API 1 以来一直在 Android 中。)

如何解决这个问题?

0 投票
0 回答
1194 浏览

android - 选择 ListView 中的所有项目 - ActionMode

我有一个实现了 ActionMode 功能的 ListView。长按任何列表项会调出上下文动作模式。它具有多选功能。我想要做的是并且无法弄清楚如何通过按一个按钮来选择列表视图中的所有项目。我不确定该怎么做。

按下垃圾桶旁边的按钮(4 个正方形应该突出显示并选择所有列表项 - 胡萝卜、洋葱和希腊酸奶。

这是我的应用程序的屏幕截图

0 投票
1 回答
2703 浏览

android - How to animate background of ActionMode of the ActionBar?

Background

It's possible to change the background of the actionbar, and even animate between two colors, as such:

The problem

I can't find a way to get the view of the action mode, so that I could change its background on some cases (while it's showing).

What I tried

Only thing I found is a hack-y way which assumes that the id of the action mode will stay the same, and even this would work just for the view of the "done" button (the one that looks like an "V" and is actually more like "cancel").

I also found how to change it via themes, but that's not what I need, since I need to do it programmatically.

The question

How do I get the view of the actionMode, or, more precisely, how can I change its background using an animation?

0 投票
1 回答
694 浏览

android - 在 TextView CustomActionModeCallback 上选择溢出菜单项

我正在尝试在长按文本视图时呈现自定义操作栏。我的菜单有超过 5 个项目,导致一些项目出现在溢出菜单下。

当我按下溢出图标时,操作栏被破坏,我无法选择溢出内的任何项目。

0 投票
2 回答
1838 浏览

android - Multiple items selection in an Android ListView with custom view

I am trying to implement in an Android application a multiple items selection in an Android ListView to allow the user to delete severals rows in one action with the help of the action mode.

For example, I check the first item listening to the long click (in the following example, contacts is a ListView) :

The matter is that after calling the setItemChecked() method, getCheckedItemPositions() method return null but it should return the position of the item that has been checked into the onItemLongClick() method no ?

The items of my ListView are made with a custom view. So I read all over the internet that my custom view have to implement the Checkable interface. So here the main container of my custom view :

and here the layout of an item :

I hope that someone will be able to help me !

Thank you in advance !

0 投票
1 回答
1212 浏览

android - 如何每次从操作栏导航菜单启动日期选择器对话框

我在我的应用程序中使用 Actionbar 下拉导航列表(模式ActionBar.NAVIGATION_MODE_LIST)。

我正在尝试在选择其中一个项目时启动一个对话框。使用回调来获取位置并可以显示对话框。

但是当用户没有在对话框上选择任何操作,或者关闭它,或者用户再次选择下拉菜单并选择相同的项目时,我需要再次显示对话框。但是如果再次选择相同的项目,则不会触发“ onNavigationItemSelected ”。一个

我已经实现了一个自定义 SpinnerAdapter 并被覆盖,'getView'(相应项目的标题)和 getDropDownView'(下拉项目)。我可以更改标题,但我想在每次从下拉菜单中选择特定项目时启动对话框下。

'Moves'流行的应用程序使用了类似的方法。启动屏幕在操作栏上有微调器,带有三个选项“今天”“昨天”“特定日期”。每次选择“特定日期”项目时,该应用程序都可以启动(日期选择器对话框)。我正在尝试实现确切的 UI 模式。无法获得如何实现它的线索。

我确实尝试为特定的下拉项设置 onClick 侦听器。这有点奏效。但是在单击设置了 onClick 事件的项目后,下拉菜单没有被关闭。

由于我们吸收了点击事件,因此框架也不会为该特定项目执行背景状态更改。

在“移动”应用程序上需要注意的一点是,一旦选择了“特定日期”,它不会将所选项目设置为第三个选项,导航仍保留在上一个所选项目上,仅显示日期选择器对话框。

我尝试实现 onTouch Listener 并基本上吸收点击事件,一旦发生第一个触摸事件(ACTION_DOWN)就启动对话框。单击后它确实关闭了下拉菜单并显示了背景状态更改。但这并不能带来良好的用户体验,因为我们需要在用户完成点击操作时才启动对话框。

想知道移动应用程序会如何做。任何见解如何实现这种行为。?

在此处输入图像描述

0 投票
2 回答
594 浏览

android - 禁用 ActionMode 启动取决于 ListView 项目类型

我有 ListView,其中包含 2 种类型的数据。只有在长按 1 种类型时,我才想启动动作模式。

这就是我启用动作模式的方式。

如何禁用第二种视图类型的操作模式。

0 投票
1 回答
271 浏览

android - 如何创建像Captain Android App这样的动作模式?

我很好奇如何创建如下图所示的动作模式?它是由自定义布局制成的吗?