Error al usar ScrimInsetFrameLayout

Estoy usando ScrimInsetsFrameLayout para obtener el Navigation Drawer en la ToolBar con el StatusBar en él así que seguí la guía y leer mucho sobre él, pero hay algo mal, incluso si no me falta nada.

Cada vez que hago clic en una actividad (de los cuatro) en la lista de drawer_listView o en el drawer_listView ic_drawer la fuerza de la aplicación se cierra sin mensajes en Logcat .

MainActivity

 public class MainActivity extends ActionBarActivity { DrawerLayout mDrawerLayout; ListView mDrawerList; ActionBarDrawerToggle mDrawerToggle; String[] mDrawerListItems; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my); Toolbar toolbar = (Toolbar)findViewById(R.id.toolbar); mDrawerLayout = (DrawerLayout)findViewById(R.id.drawer); mDrawerLayout.setStatusBarBackgroundColor(getResources().getColor(R.color.primaryDark)); mDrawerList = (ListView)findViewById(android.R.id.list); mDrawerListItems = getResources().getStringArray(R.array.drawer_list); mDrawerList.setAdapter(new ArrayAdapter<> (this, android.R.layout.simple_list_item_1, mDrawerListItems)); mDrawerList.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { openFragment(position); } }); mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, toolbar, R.string.drawer_open, R.string.drawer_close){ public void onDrawerClosed(View v){ super.onDrawerClosed(v); invalidateOptionsMenu(); syncState(); } public void onDrawerOpened(View v){ super.onDrawerOpened(v); invalidateOptionsMenu(); syncState(); } }; mDrawerLayout.setDrawerListener(mDrawerToggle); setSupportActionBar(toolbar); getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setHomeButtonEnabled(true); mDrawerToggle.syncState(); } protected void openFragment(int position){ mDrawerLayout.closeDrawer(mDrawerList); switch (position) { case 0: startActivity(new Intent(this, WIND.class)); break; case 1: startActivity(new Intent(this, GEO.class)); break; case 2: startActivity(new Intent(this, COMPASS.class)); break; case 3: startActivity(new Intent(this, BARO_ALTI.class)); break; default: break; } } @Override protected void onPostCreate(Bundle savedInstanceState){ super.onPostCreate(savedInstanceState); mDrawerToggle.syncState(); } @Override public void onConfigurationChanged(Configuration newConfig){ super.onConfigurationChanged(newConfig); mDrawerToggle.onConfigurationChanged(newConfig); } @Override public boolean onOptionsItemSelected(MenuItem item){ switch (item.getItemId()){ case android.R.id.home: { if (mDrawerLayout.isDrawerOpen(mDrawerList)){ mDrawerLayout.closeDrawer(mDrawerList); } else { mDrawerLayout.openDrawer(mDrawerList); } return true; } default: return super.onOptionsItemSelected(item); } } 

my_activity.xml :

 <?xml version="1.0"?> <android.support.v4.widget.DrawerLayout xmlns:tools="http://schemas.android.com/tools" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_height="match_parent" android:layout_width="match_parent" android:id="@+id/drawer" tools:context=".MainActivity" android:fitsSystemWindows="true"> <FrameLayout android:orientation="vertical" android:layout_height="match_parent" android:layout_width="match_parent"> <android.support.v7.widget.Toolbar android:layout_height="?attr/actionBarSize" android:layout_width="match_parent" app:popupTheme="@style/Theme.AppCompat" app:theme="@style/ToolbarTheme" android:background="@color/primary" android:id="@+id/toolbar"/> <FrameLayout android:layout_height="match_parent" android:layout_width="match_parent" android:id="@+id/content_frame"> </FrameLayout> </FrameLayout> <beta_toolbox.pier.beta_toolbox.ScrimInsetsFrameLayout xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/linearLayout" android:layout_width="304dp" android:layout_height="match_parent" android:layout_gravity="start" android:fitsSystemWindows="true" app:insetForeground="#4000"> <ListView android:layout_height="match_parent" android:layout_width="match_parent" android:background="#ffffffff" android:divider="#ffffffff" android:dividerHeight="8dp" android:id="@android:id/list" android:layout_gravity="start" android:scrollbars="none"/> </beta_toolbox.pier.beta_toolbox.ScrimInsetsFrameLayout> 

Mi problema está limitado a my_activity.xml . Por favor, ayúdame No puedo continuar con mi proyecto.

[Actualizar]

Hice mi diseño exactamente como lo hizo https://github.com/google/iosched/blob/master/android/src/main/res/layout/activity_map.xml pero ** por qué no estoy recibiendo el mismo resultado? ! **

 <?xml version="1.0"?> <android.support.v4.widget.DrawerLayout xmlns:tools="http://schemas.android.com/tools" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_height="match_parent" android:layout_width="match_parent" android:id="@+id/drawer" tools:context=".MainActivity" android:fitsSystemWindows="true"> <beta_toolbox.pier.beta_toolbox.ScrimInsetsFrameLayout xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/linearLayout" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" app:insetForeground="#4000"> <FrameLayout android:layout_height="match_parent" android:layout_width="match_parent" android:id="@+id/content_frame"> </FrameLayout> <android.support.v7.widget.Toolbar android:layout_height="?attr/actionBarSize" android:layout_width="match_parent" app:popupTheme="@style/Theme.AppCompat" app:theme="@style/ToolbarTheme" android:background="@color/primary" android:id="@+id/toolbar"/> </beta_toolbox.pier.beta_toolbox.ScrimInsetsFrameLayout> <ListView android:layout_height="match_parent" android:layout_width="match_parent" android:background="#ffffffff" android:divider="#ffffffff" android:dividerHeight="8dp" android:id="@android:id/list" android:layout_gravity="start" android:scrollbars="none"/> </android.support.v4.widget.DrawerLayout> 

Simplemente poner setSupportActionBar(toolbar); Justo debajo de la Toolbar toolbar = (Toolbar)findViewById(R.id.toolbar);

Ahora deberías poder hacer clic en el ic_drawer para abrir el drawer_layout .

(No podrás hacer clic en una actividad de esa lista, trataré de obtener ese problema, actualizaré mi respuesta mañana)

Editar:

 public class MainActivity extends ActionBarActivity { DrawerLayout mDrawerLayout; ListView mDrawerList; ActionBarDrawerToggle mDrawerToggle; String[] mDrawerListItems; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my); Toolbar toolbar = (Toolbar)findViewById(R.id.toolbar); setSupportActionBar(toolbar); getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setHomeButtonEnabled(true); mDrawerLayout = (DrawerLayout)findViewById(R.id.drawer); mDrawerLayout.setStatusBarBackgroundColor(getResources().getColor(R.color.primaryDark)); mDrawerListItems = getResources().getStringArray(R.array.drawer_list); mDrawerList = (ListView)findViewById(android.R.id.list); mDrawerList.setAdapter(new ArrayAdapter<> (this, android.R.layout.simple_list_item_1, mDrawerListItems)); mDrawerList.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { openFragment(position); } }); mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, toolbar, R.string.drawer_open, R.string.drawer_close){ public void onDrawerClosed(View v){ super.onDrawerClosed(v); invalidateOptionsMenu(); syncState(); } public void onDrawerOpened(View v){ super.onDrawerOpened(v); invalidateOptionsMenu(); syncState(); } }; mDrawerLayout.setDrawerListener(mDrawerToggle); mDrawerToggle.syncState(); } protected void openFragment(int position){ Intent intent; switch (position) { case 0: intent = new Intent(this, Activity1.class); break; case 1: intent = new Intent(this, Activity2.class); break; case 2: intent = new Intent(this, Activity3.class); break; case 3: intent = new Intent(this, Activity4.class); break; default: intent = null; } startActivity(intent); //mDrawerLayout.closeDrawer(mDrawerList); } @Override protected void onPostCreate(Bundle savedInstanceState){ super.onPostCreate(savedInstanceState); mDrawerToggle.syncState(); } @Override public void onConfigurationChanged(Configuration newConfig){ super.onConfigurationChanged(newConfig); mDrawerToggle.onConfigurationChanged(newConfig); } @Override public boolean onOptionsItemSelected(MenuItem item){ switch (item.getItemId()){ case android.R.id.home: { if (mDrawerLayout.isDrawerOpen(mDrawerList)){ mDrawerLayout.closeDrawer(mDrawerList); } else { mDrawerLayout.openDrawer(mDrawerList); } return true; } default: return super.onOptionsItemSelected(item); } } 

Make windowActionBar a true en los estilos Try this y la navegación debe ir bajo

 <?xml version="1.0"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <android.support.v7.widget.Toolbar xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_height="?attr/actionBarSize" android:layout_width="match_parent" app:popupTheme="@style/Theme.AppCompat" app:theme="@style/ToolbarTheme" android:background="@color/primary" android:id="@+id/toolbar"/> <android.support.v4.widget.DrawerLayout xmlns:tools="http://schemas.android.com/tools" android:layout_height="match_parent" android:layout_width="match_parent" android:id="@+id/drawer" tools:context=".MainActivity" > <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <FrameLayout android:layout_height="match_parent" android:layout_width="match_parent" android:id="@+id/content_frame"/> </LinearLayout> <beta_toolbox.pier.beta_toolbox.ScrimInsetsFrameLayout xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/linearLayout" android:layout_width="304dp" android:layout_height="match_parent" android:layout_gravity="start" app:insetForeground="#4000"> <ListView android:layout_height="match_parent" android:layout_width="match_parent" android:background="#ffffffff" android:divider="#ffffffff" android:dividerHeight="8dp" android:id="@android:id/list" android:layout_gravity="start" android:scrollbars="none"/> </beta_toolbox.pier.beta_toolbox.ScrimInsetsFrameLayout> </android.support.v4.widget.DrawerLayout> </LinearLayout> 

[ UPDATE ]

Según el documento de Android:

 public void syncState () 

Esto se debe llamar desde el método onPostCreate de su actividad para sincronizarse después de restaurar el estado de la instancia de DrawerLayout y en cualquier otro momento cuando el estado puede haber divergido de tal manera que el ActionBarDrawerToggle no fue notificado. (Por ejemplo, si deja de enviar eventos de cajón adecuados durante un período de tiempo.)

Así que puede intentar eliminar todos los demás de la llamada syncState()

  • Problema de barra de estado de diseño de barra de herramientas de despliegue
  • 5.1 Crash - El color primario de TaskDescription debe ser opaco
  • Diseño del widget SearchView mediante la biblioteca de soporte v21
  • ¿Cómo puedo cambiar el texto de la ActionBar de diseño de material?
  • Otra actividad aparece y cubre la mitad del tamaño de la pantalla
  • Cómo configurar NAVIGATION_MODE_LIST en la barra de herramientas new appcompat v7 21
  • Android.support.v4.widget.CircleImageView no funciona
  • Android: la barra desplegable de la barra de herramientas se desplaza hacia arriba
  • ¿Qué es una buena y SIMPLE biblioteca de vista de fichas
  • Cómo manejar el menú flotante Acción en modo horizontal
  • Creación de un SearchView que se parezca a las directrices de diseño del material
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.