删除ActionMode的"完成"按钮

Mar*_*los 21 android android-actionbar android-actionmode

0我在我的应用程序上使用startActionMode(ActionMode).

默认情况下,它会在栏上添加"完成"按钮,我想将其删除.

此外,如果有办法改变它的文本,我也想知道,导致与"完成"不同的描述可以使动作与它的行为相对应.

Mat*_*ers 44

我同意@CommonsWare隐藏完成按钮是无效的设计.

但是,有些客户想要删除此按钮,我可以理解,复选标记可能会导致用户混淆,因为在某些情况下它实际上什么都不做.

那么,以下是如何删除带样式的按钮:

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

<style name="NoCloseButton" parent="@android:style/Widget.ActionButton.CloseMode">
    <item name="android:visibility">gone</item>
</style>
Run Code Online (Sandbox Code Playgroud)

  • @Cilenco:`actionModeCloseButtonStyle`(没有`android:`)应该适用于ABS. (3认同)
  • 它工作但是,如果我膨胀自定义布局它不占用整个宽度.这是唯一的问题. (2认同)

小智 1

即使我也被困住了,我找到了这种方法来解决它。

int doneButtonId = Resources.getSystem().getIdentifier("action_mode_close_button", "id", "android");
LinearLayout layout = (LinearLayout) findViewById(doneButtonId);
TextView doneview = (TextView) layout.getChildAt(1);
doneview.setText("");
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!!

  • 这是一个不可靠的解决方案,因为它假设实现细节可能会发生变化。 (11认同)