Dos barras de acción al iniciar ActionMode

Tengo el siguiente diseño de actividad:

<?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.DrawerLayout android:id="@+id/drawerLayout" style="@style/DrawerLayout" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools"> <android.support.design.widget.CoordinatorLayout android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" tools:context=".ui.activity.MyActivity"> <android.support.design.widget.AppBarLayout android:id="@+id/app_bar" android:layout_width="match_parent" android:layout_height="@dimen/app_bar_height" android:background="@color/black" android:fitsSystemWindows="true" android:theme="@style/AppTheme.AppBarOverlay"> <android.support.design.widget.CollapsingToolbarLayout android:id="@+id/toolbar_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" app:collapsedTitleTextAppearance="@style/ToolbarTitle" app:contentScrim="@color/primary" app:layout_scrollFlags="scroll|exitUntilCollapsed"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar_top" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" app:layout_collapseMode="pin" app:popupTheme="@style/AppTheme.PopupOverlay" app:theme="@style/ThemeOverlay.AppCompat.Light"/> </android.support.design.widget.CollapsingToolbarLayout> </android.support.design.widget.AppBarLayout> <my.package.ui.widget.MyHeaderWidget android:id="@+id/deal_header" android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_behavior="my.package.ui.activity.MyHeaderBehavior"/> <include layout="@layout/content_list"/> </android.support.design.widget.CoordinatorLayout> <include layout="@layout/navigation_view"/> </android.support.v4.widget.DrawerLayout> 

Se utiliza para tener una barra de herramientas que se derrumba + el cajón de la navegación + una animación para un título un subtítulo (en el widget del jefe). Todo está bien hasta que intente iniciar el ActionMode para habilitar la selección múltiple.

Lo hago llamando a:

  mActionMode = mCollapsingToolbarLayout.startActionMode(mActionModeCallback); 

El problema es que termino teniendo dos barras de acción (con dos flechas):

[!] [Ver la captura de pantalla] [1] [1]

El negro es el que esperaba estar allí el blanco se agrega cuando comienzo el ActionMode.

¿Estoy haciendo algo mal?

EDITAR

En el AndroidMaifest

  <activity android:name=".ui.activity.MyActivity" android:label="@string/title_activity" android:theme="@style/MyTheme"> </activity> 

En el styles.xml

 <style name="MyTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="android:windowBackground">@drawable/window_background_gray</item> <item name="android:colorBackground">@color/app_background</item> <item name="displayOptions">showHome|homeAsUp|showTitle</item> <item name="android:icon">@android:color/transparent</item> <item name="android:windowContentOverlay">@null</item> <item name="colorPrimary">@color/primary</item> <item name="colorAccent">@color/accent</item> <item name="colorPrimaryDark">@color/primaryDark</item> <item name="android:textAppearanceButton">@style/Theme.ButtonTextAppearance</item> <item name="windowActionBar">false</item> <item name="windowNoTitle">true</item> </style> 

EDIT2

Si desea probar este problema, puede crear un nuevo proyecto en Android Studio con el código de ejemplo ScrollingActivity. Modifique el tema como usted piensa que debe y luego acaba de iniciar el modo de acción al presionar el FAB, pasando el siguiente objeto como ActionMode.Callback a startSupportActionMode:

 private ActionMode.Callback mActionModeCallback = new ActionMode.Callback() { // Called when the action mode is created; startActionMode() was called @Override public boolean onCreateActionMode(ActionMode mode, Menu menu) { // Inflate a menu resource providing context menu items MenuInflater inflater = mode.getMenuInflater(); inflater.inflate(R.menu.menu_scrolling, menu); return true; } // Called each time the action mode is shown. Always called after onCreateActionMode, but // may be called multiple times if the mode is invalidated. @Override public boolean onPrepareActionMode(ActionMode mode, Menu menu) { return false; // Return false if nothing is done } // Called when the user selects a contextual menu item @Override public boolean onActionItemClicked(ActionMode mode, MenuItem item) { switch (item.getItemId()) { case R.id.action_settings: mode.finish(); return true; default: return false; } } // Called when the user exits the action mode @Override public void onDestroyActionMode(ActionMode mode) { mActionMode = null; } }; 

Deberá indicarle al sistema que utilice su barra de herramientas personalizada. Para ello, en la onCreate de su actividad, simplemente añada lo siguiente:

 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.your_layout); //Then get a reference to your Toolbar Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar_top); //Tell the system to use yours setSupportActionBar(toolbar); } 

Aquí mi Actividad extiende AppCompatActivity por lo que estoy usando setSupportActionBar , pero encontrarás el mismo método para regular activity setActionBar

Además, necesitará crear un estilo (en res / values ​​/ styles.xml):

 <style name="MyNoAppBarTheme" parent="AppTheme"> <item name="windowActionBar">false</item> <item name="windowNoTitle">true</item> </style> 

O en caso de que ya no sobrescriba su AppTheme:

 <style name="MyNoAppBarTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="windowActionBar">false</item> <item name="windowNoTitle">true</item> </style> 

Y finalmente establecer este tema en su manifiesto para esa actividad en particular:

 <activity android:name=".ui.activities.YourActivity" android:label="@string/app_name" android:theme="@style/MyNoAppBarTheme" /> 

EDIT: Después de haber editado su pregunta, parece que el actionMode es el problema aquí. Como se explica en esta respuesta , asegúrese de que está utilizando la importación correcta, así como el uso de startSupportActionMode lugar de startActionMode

Si estás usando una barra de herramientas, estas 3 líneas son suficientes:

  <style name="AppTheme.NoActionBar"> <item name="windowActionBar">false</item> <item name="windowNoTitle">true</item> <item name="windowActionModeOverlay">true</item> <!-- This is the important line --> </style> 

Recuerde agregar que en ambos estilos y estilos de archivos (v21)

Intente agregar lo siguiente en su tema en styles.xml –

 <item name="android:windowActionBarOverlay">false</item> <item name="windowActionBarOverlay">false</item> <item name="windowActionModeOverlay">true</item> 

También agregue las líneas siguientes si está utilizando la Toolbar

 <item name="windowActionBar">false</item> <item name="windowNoTitle">true</item> 

Su tema padre tiene que ser algunos de los temas de barra NoAction

  <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> <item name="colorControlNormal">@color/colorPrimary</item> <item name="colorControlActivated">@color/colorAccent</item> </style> 
  • Androide diseño biblioteca barra de herramientas sombra
  • Barra de herramientas no se contraerá con Scrollview como hijo de CoordinatorLayout
  • Uso de la barra de herramientas AppCompat con FrameLayout
  • Título de la barra de herramientas primera letra otro color
  • Android: centra el título de la barra de herramientas
  • ¿Cómo agregar un único elemento de menú a la barra de herramientas de android?
  • Barra de herramientas de Android flecha posterior con icono como WhatsApp
  • Android: fitsSystemWindows no funciona en la barra de herramientas
  • Barra de herramientas dejando espacio en blanco con ocultar en RecyclerView scroll
  • CollapsingToolbarLayout no funciona correctamente
  • Emita el desplazamiento WebView en NestedScrollView Android 2.3 o menos
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.