Articles of contextual action bar

如何正确处理动作模式“完成”按钮?

可能重复: 如何调用ActionBar的类似ContextMenu的行为? 如何识别是否在ActionMode中单击了“完成”按钮 如何正确处理动作模式“完成”按钮? 我在动作模式下对一个对象执行一些操作,我想通过点击这个按钮来保存结果 – 比如“保存并退出”。 如何在此按钮上发送按键? 我看到的唯一方法是使用标志覆盖onDestroyActionMode(ActionMode模式)方法,在dispatchKeyEvent(KeyEvent事件)中触发以处理它是否由“后退”按钮按下引起。 logcat的: “完成”按下了 10-03 14:31:58.211: D/DESTROY(967): onDestroyActionMode “后退”紧迫 10-03 14:32:01.771: D/DISPATCH(967): Action: 0/n Keykode: 4 10-03 14:32:01.911: D/DISPATCH(967): Action: 1/n Keykode: 4 10-03 14:32:01.911: D/DESTROY(967): onDestroyActionMode 但这看起来并不是一种好的做法。 有什么“好”的解决方案吗? UPD:我知道如何在ActionMode.Callback中调用动作模式和处理动作项事件,但是如何按“完成”按钮来修改它的行为? “后退”按钮和“完成”按钮都会导致ActionMode.Callback的onDestroyActionMode()调用。

上下文动作栏样式

我在上下文操作栏(CAB)上寻找样式信息。 我只需要改变文本的颜色。 从上面可以看出,这是使用标准的Theme.Holo.Light.DarkActionBar主题,所以我只需要将文本颜色设置为白色! 谁能指出我正确的方向?

如何使Contextual ActionMode Bar覆盖appcompat-v7工具栏而不是导航抽屉?

我有一个应用栏和导航抽屉的活动。 应用栏是使用appcompat-v7库版本21 +中的新工具栏类实现的,导航抽屉显示在它前面。 该活动包含一个列表视图,其中包含可以选择的项目,因此我显示了一个上下文操作栏(CAB)。 它是通过调用来启动的: ActionBarActivity.startSupportActionMode(android.support.v7.view.ActionMode.Callback callback) 默认情况下,CAB插入工具栏上方而不是覆盖它; 看起来CAB默认只覆盖真正的ActionBar。 如此答案所示 ,当设置此主题属性时,CAB会正确覆盖工具栏: true 但这也使得CAB覆盖了导航抽屉,根据材料设计规格 ,这是不正确的。 主要的Android设计文档仍然建议在打开导航抽屉时隐藏CAB并在关闭时再次显示它, 这可以用来“修复”问题,但它不应该是必要的。 如上所述,Material设计规范没有指定在导航抽屉打开时应该隐藏CAB,并且因为导航抽屉应该在CAB上打开,隐藏CAB实际上是一种视觉干扰。 有没有办法在CAB前面显示导航抽屉,同时还能覆盖工具栏?

Android兼容性上下文操作栏

在尝试遵循Android设计指南时,我遇到了一个小小的困境。 我希望有一个项目列表,我可以长按几个(多选),然后对它们执行批量操作。 设计指南建议使用Contextual Action Bar,它听起来就像我想到的那样。 问题是,我正在努力保持与API 7的兼容性(由于我的手机目前是2.3.3)。 我正在使用ActionBarSherlock获取其他动作栏的东西,但我似乎无法弄清楚如何启动它以启动上下文操作栏,也没有弄清楚如何在ABS中的ActionBar任意添加按钮。 我看到你可以做标签,所以也许这就是答案,但由于我试图允许多选,我不想拥有正常的模态上下文菜单。

覆盖Android中文本选择(在WebView中)的默认上下文操作栏

我想覆盖现有的默认上下文操作栏(CAB)进行文本选择。 我的意思是,当我在webview上选择了一些文本时,我想用自己的按钮显示我自己的CAB。 我尝试使用Android文档实现CAB。 OnLongClickListener不捕获Web视图中的文本选择事件。 捕获文本选择的事件是什么? 是否可以隐藏默认CAB并在文本选择上显示我的CAB? childWebView.setOnLongClickListener(new OnLongClickListener() { @Override // Called when the user long-clicks on someView public boolean onLongClick(View view) { if (mActionMode != null) { return false; } // Start the CAB using the ActionMode.Callback defined above mActionMode = startActionMode(mActionModeCallback); view.setSelected(true); return true; } });

如何在ActionBarSherlock中实现多选和Contextual ActionMode?

我应该如何在AdapterView上使用ActionBarSherlock实现多选,因为它不提供MultiChoiceModeListener? 这就是它的样子 你怎么能这样做?

你如何改变CAB中的“完成”文本?

Android的文档中有很多关于CAB的文档,但没有提到如何更改“完成”文本。 有谁知道如何? 其他链接: http://developer.android.com/design/patterns/selection.html http://developer.android.com/guide/topics/ui/menus.html#CAB

CAB溢出菜单自定义样式

在我的应用程序中,我正在显示一个上下文操作栏,因为我没有空间来执行所有操作,其中一些操作可以通过溢出菜单button进行访问。 现在我想要设置溢出菜单并更改其背景。 我的主题从Theme.AppCompatinheritance,我定义了这些样式: <item name="android:popupMenuStyle">@style/PopupMenu</item> <item name="android:listPopupWindowStyle">@style/PopupMenu</item> <item name="android:dropDownListViewStyle">@style/DropDownListView</item> <style name="PopupMenu" parent="Widget.AppCompat.PopupMenu"> <!–<item name="android:popupBackground">@color/dark_color</item>–> <item name="android:textColor">?android:textColorPrimary</item> <item name="android:dropDownSelector">?popupItemBackground</item> </style> <style name="DropDownListView" parent="Widget.AppCompat.ListView.DropDown"> <item name="android:listSelector">?popupItemBackground</item> <item name="android:divider">@null</item> <item name="android:dividerHeight">0dp</item> </style> 我的应用程序中的其他菜单(操作栏和其他菜单中的溢出菜单)是样式的,但上下文操作栏的溢出菜单不是。 我该怎么办?

Android的新工具栏和上下文操作栏如何协同工作?

我正在重新devise我现在的应用程序,大概是Chris Bane 在这里的优秀介绍 。 但有一点让我感到震惊: 如果我通过setSupportActionBar()将新的v7-appcompat Toolbar设置为操作Toolbarreplace,并从Theme.AppCompat.Light.NoActionBar派生我的主题,那么上下文操作栏(CAB)仍然会popup并推送我的内容,包括工具栏,下: 现在,我可以尝试使CAB叠加在我的工具栏上,但是我认为后退button的UI(基本上是指标和放置位置),CAB文本与工具栏不匹配(如图所示),所以我不知道在工具栏实现中是否有一个“CAB”模式,以便工具栏也可以接pipe这个angular色?

如何开始文本视图的上下文行动栏与默认opions编程方式复制并select所有?

有没有什么办法编程方式启动与文本视图相关联的上下文操作栏,单击button? 它应该包含复制/select全部的默认选项。 基本上,我想显示在我的文本视图和Android默认复制/select所有选项在操作栏上的button单击(而不是长按/双击)的select手柄。 我到目前为止的尝试:尝试使用setCustomActionModeCallback()API,但问题在这里,用户需要长按/双击文本视图为CAB出现。 尝试使用startActionMode()API,但无法find一种方法来保留默认项目..它只是打开一个新的空CAB ..我知道,我可以添加我的自定义副本select所有的代码,并利用这个空的CAB,但我想使用默认的android提供的一个,而不是自己pipe理它。 编辑; 我不能使用EditText。 该视图只需要TextView,而长时间点击将被禁用。 我正在做所有上述更改通过将TextView设置为可选