当前位置: 首页 > 知识库问答 >
问题:

检测ActionMode嵌套

丌官昊天
2023-03-14

共有1个答案

杨飞
2023-03-14

进一步说明您的情况:在honeycomb之前,TextView上的longPress将弹出一个带有选项的窗口(如“选择单词”、“全部选择”和“向字典添加”someWord“),同时不影响任何现有的ActionMode(在显示和取消时(通过按下后退)。所以在蜂巢之前这并不是一个真正的问题。

关于HTC Sense:Sense不尊重TextView.SetCustomSelectionActionModeCallBack(),因为Sense没有使用ActionMode作为文本选择功能(而且显然也不关心其他系统是否使用!)。所以这个问题在那种情况下有一种不同的味道(我还没有在Sense下测试下面的解决方案,所以不确定它会如何表现)。

一个解决方案是创建您自己的自定义ActionMode.Callback来替换操作系统的ActionMode.Callback并将其应用于您所需的任何TextView和/或EditText的setCustomSelectionActionModeCallback()中(尽管仅当设备运行honeycomb或更高版本时)。将自定义OnTextSelectionCabDestromed回调接口传递给自定义ActionMode.callback,在onDestroyActionMode方法中调用它。

public interface YourCallbackInterface {
    public void onTextSelectionCABDestroyed();
}
public final class CustomTextSelectionActionModeCallback implements ActionMode.Callback {
WeakReference<YourCallbackinterface> mYourCallbackinterface;
public CustomTextSelectionActionModeCallback(YourCallbackinterface yourCallbackInterface) {
    mYourCallbackinterface = new WeakReference<YourCallbackinterface>(yourCallbackInterface);
}
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
    return false;
}
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
    return true;    //returning true will create the ActionMode
}
@Override
public void onDestroyActionMode(ActionMode mode) {
    //this is the magic where we actually capture the destroy event for TextSelectionCAB and can subsequently do things like recreate the ActionMore that TextSelectionCAB greedily destroyed!
    mYourCallbackinterface.get().onTextSelectionCABDestroyed();
}
@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
    return false;
}
 类似资料:
  • 我有一个列表活动,其中用户可以执行打开操作模式和。用户还可以打开操作模式,然后在其顶部打开。 动作模式实际上是搜索动作模式,用户可以从中选择打开动作模式的结果(如果这有助于理解的话)。

  • 问题内容: 我有一个具有特定页面的应用程序- 我们将其称为页面A。页面A有时是顶层页面,但有时也作为iframe嵌入到页面B中。所有页面都来自同一服务器,并且没有跨域问题。 我有一个运行在页面A上的润滑脂脚本。润滑脂脚本如何检测页面A是否在iframe上下文中? 问题答案: 如果页面A本身具有框架,则通常看框架长度会崩溃(我知道在此特定实例中可能不是这种情况)。更可靠和有意义的测试将是:

  • 没有调用onCreateActionMode之类的方法,所以我的标题栏没有设置,尽管操作栏会变成黑色,但出于某种原因,我知道文本应该是白色的,就好像我创建了可以工作的对象之后,我做了一样,只是回调函数不工作。 如前所述,另一个问题是,当我执行时,列表视图项没有显示它已被选中。我还尝试过。

  • 我的片段包含一个viewpager,它包含一个listView 此listView行在左侧显示一个缩略图,在右侧显示一些文本。就像gmail应用一样,当我按下缩略图时,我希望它切换到ActionMode。按下其他位置时,将打开与按下的特定行相关的不同活动。这部分工作正常。 当不在actionMode中时,调用onItemClick,但一旦在actionMode中,就不再调用了... 在操作模式下,

  • 我知道我不是第一个问这个的,但是我在前面的问题中找不到答案。我有一个组件 在控制器中,会不时发生变化。 在中,数据以表格格式作为HTML输出。每当发生更改时,此值就会发生更改。 我的组件需要使用作为触发器在Google Map上重绘标记。问题是,当在父级中更改时,ngOnChanges不会激发。我能做什么? 更新:ngOnChanges不工作,但看起来像是正在更新lapsData。在ngInit中

  • 关于测试XML标记的正确嵌套的一个问题: null 发现/lastname标记在其父标记之外的代码或方向是什么,父标记是to,/to pair? 干杯。