Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Remove "Done" button of ActionMode

Tags:

0I'm using startActionMode(ActionMode) on my app.

By default it's add a "Done" button on the bar, I want to remove it.

Also, if there's a way to change it's text, I want to know too, cause a different description than "Done" can make the action be correspondent to the behaviour of what it does.

like image 903
Marcos Vasconcelos Avatar asked Feb 19 '13 18:02

Marcos Vasconcelos


2 Answers

I agree with @CommonsWare that it is invalid design to hide the Done button.

However, there are customers that want to have this button removed and I can understand that the checkmark may cause confusion to users because it actually does nothing in some cases.

So, here is how to remove the button with styles:

<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> 
like image 81
Matthias Robbers Avatar answered Oct 22 '22 08:10

Matthias Robbers


If you are using ActionBarSherlock you can hide the "Done" button with this style:

<resources xmlns:android="http://schemas.android.com/apk/res/android">     <style name="NoCloseButton" parent="@style/Widget.Sherlock.ActionButton.CloseMode">         <item name="android:visibility">gone</item>     </style>      <style name="AppBaseTheme" parent="Theme.Sherlock.Light.DarkActionBar">         <item name="actionModeCloseButtonStyle">@style/NoCloseButton</item>     </style>      <!-- Application theme. -->     <style name="AppTheme" parent="AppBaseTheme">      </style> </resources> 

Please make sure to put this style in each style directory (values, value-v11, values-v14). After that you can create a custom menu with this code:

LayoutInflater inflater = LayoutInflater.from(getSherlockActivity()); View actionView = inflater.inflate(R.layout.actionmode, null);  ActionMode am = getSherlockActivity().startActionMode(mActionModeCallback); am.setCustomView(actionView); 
like image 43
Cilenco Avatar answered Oct 22 '22 07:10

Cilenco