Articles of contextual action bar

如何调用ActionBar的类似ContextMenu的行为?

在Android 3.0中,当您选择一些文本时,ActionBar会切换到类似ContextMenu的模式,这使您可以使用所选文本执行操作:复制/共享/等,左侧显示“完成”按钮使用户能够离开此模式。 如何在我的应用程序中将ActionBar切换到此模式(当然还有我的菜单项)? 我在文档中找不到这个。

进入上下文操作模式时更改状态栏颜色

我有一个应用程序使用主题属性(colorPrimaryDark)为Android v21 +上的状态栏着色: 这工作正常。 现在,当用户长按列表项并进入上下文操作模式时,我可以使用属性actionModeBackground为CAB栏着色,所以它看起来像这样: 因此操作栏是灰色的,这就是我想要的,但状态栏仍然使用主题深色进行着色 。 我不想那样,我想把它变成深灰色或黑色。 我怎样才能做到这一点? 我没有看到任何可以在这里工作的主题属性。

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

可能重复: 如何调用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> 我的应用程序中的其他菜单(操作栏和其他菜单中的溢出菜单)是样式的,但上下文操作栏的溢出菜单不是。 我该怎么办?