【问题标题】:Contextual Action Mode custom behavior上下文操作模式自定义行为
【发布时间】:2012-10-04 15:13:23
【问题描述】:

在android开发者的menu guide中提到:

当用户取消选择所有项目、按下“返回”按钮或选择栏左侧的“完成”操作时,操作模式被禁用并且上下文操作栏消失。

从技术上讲,这意味着mActionMode.finish()BACK 按钮按下或Done 动作选择调用ActionMode.Callback onDestroyActionMode() 方法。

我的问题是当用户选择Done 时如何执行自定义操作(例如Toast("Action mode exit by Done select")),当用户按下BACK 时如何执行另一个操作(例如Toast("Action mode exit by BACK"))?

【问题讨论】:

  • 监控CAB的当前状态(打开/未打开)和列表中选中项的数量,您可以确定使用哪种方法关闭CAB。
  • Alexiosdev 回答了类似的问题 [此处][1]。 [1]:stackoverflow.com/a/14090730/836413

标签: android android-actionbar actionbarsherlock contextual-action-bar


【解决方案1】:

解决此问题的一种方法是使用主题从您创建的操作模式中隐藏完成按钮。然后,您只需将自己的完成按钮添加到您创建的每个操作模式。显然,您可以跟踪是否调用了 onDestroyActionMode 是因为您的完成按钮被点击或后退按钮。这是一个主题,您可以将其应用于完成此任务所需的活动。

 <style name="HideActionModeCloseTheme" parent="@android:style/Theme.DeviceDefault">
    <item name="android:actionModeCloseButtonStyle">@style/NoCloseButton</item>
</style>

<style name="NoCloseButton" parent="@android:style/Widget.DeviceDefault.ActionButton.CloseMode">
    <item name="android:visibility">invisible</item>
</style>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-15
    • 2011-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多