que - Cajón de navegación de estilo de diseño de Android 5.0 para KitKat
api android studio (4)
Veo que Android introdujo nuevos íconos de cajones de navegación, ícono de cajones e ícono de flecha hacia atrás. ¿Cómo podemos usar eso en las aplicaciones compatibles con Kitkat? Consulte la última versión de Google de la aplicación Kiosko, que tiene los últimos íconos y animaciones del panel de navegación. ¿Cómo podemos implementar eso?
Intenté configurar minSDK en 19 y complileSDK en 21 pero está usando los íconos antiguos. ¿Es eso auto implementado?
La respuesta ya no es útil. Dejarlo aquí solo con un propósito histórico ya que el momento de publicar Android no tuvo la implementación :)
Hay muchas bibliotecas ahora que pueden lograr esto.
Elección 1 - https://github.com/neokree/MaterialNavigationDrawer
Otros
Compatible con el comentario principal junto con el nuevo diseño main_content generado. Simplemente anulo el diseño de contenido incluido con DrawerLayout. Tenga en cuenta que su drawerlayout debe tener este layout_behavior: appbar_scrolling_view_behavior
diseño del contenedor superior https://github.com/juanmendez/jm_android_dev/blob/master/01.fragments/06.fragments_with_rx/app/src/main/res/layout/activity_recycler.xml#L17
diseño de contenido incluido https://github.com/juanmendez/jm_android_dev/blob/master/01.fragments/06.fragments_with_rx/app/src/main/res/layout/content_recycler.xml#L9
Si desea el cajón de navegación real con el estilo de diseño de materiales (definido here )
Implementé una biblioteca personalizada que hace exactamente eso.
Puedes encontrarlo https://github.com/neokree/MaterialNavigationDrawer
Necesita utilizar la nueva barra de herramientas en el appcompat v21 y el nuevo ActionBarDrawerToggle
que también está en esta biblioteca.
Agregue la dependencia gradle a su archivo gradle:
compile ''com.android.support:appcompat-v7:21.0.0''
Su diseño activity_main.xml
se vería así:
<!--I use android:fitsSystemWindows because I am changing the color of the statusbar as well-->
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main_parent_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:fitsSystemWindows="true">
<include layout="@layout/toolbar"/>
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- Main layout -->
<FrameLayout
android:id="@+id/main_fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<!-- Nav drawer -->
<fragment
android:id="@+id/fragment_drawer"
android:name="com.example.packagename.DrawerFragment"
android:layout_width="@dimen/drawer_width"
android:layout_height="match_parent"
android:layout_gravity="left|start" />
</android.support.v4.widget.DrawerLayout>
</LinearLayout>
El diseño de su barra de herramientas se vería así:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/toolbar"
app:theme="@style/ThemeOverlay.AppCompat.ActionBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary"/>
Su actividad debe extenderse desde:
ActionBarActivity
Cuando encuentre sus vistas (cajón y barra de herramientas) en la actividad, configure la barra de herramientas como la barra de acciones de soporte y configure setDrawerListener:
setSupportActionBar(mToolbar);
mDrawerToggle= new ActionBarDrawerToggle(this, mDrawerLayout,mToolbar, R.string.app_name, R.string.app_name);
mDrawerLayout.setDrawerListener(mDrawerToggle);
Después de eso, solo tiene que ocuparse de los elementos del menú y del estado del cajón de Google:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = new MenuInflater(this);
inflater.inflate(R.menu.menu_main,menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (mDrawerToggle.onOptionsItemSelected(item)) {
return true;
}
return super.onOptionsItemSelected(item);
}
@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 void onBackPressed() {
if(mDrawerLayout.isDrawerOpen(Gravity.START|Gravity.LEFT)){
mDrawerLayout.closeDrawers();
return;
}
super.onBackPressed();
}
La implementación es la misma que antes de la barra de herramientas y recibe la animación de flecha de forma gratuita. Sin dolores de cabeza Para más información siga:
Si desea mostrar el cajón sobre la barra de herramientas y debajo de la barra de estado, consulte esta pregunta .
EDITAR: use NavigationView desde la biblioteca de diseño de soporte. Tutorial para aprender a usar aquí: http://antonioleiva.com/navigation-view/