Cajón de navegación – Vista de cabecera con ListView

Actualmente estoy creando y definiendo un cajón de navegación. Quiero ahora una vista de cabecera, como su en las aplicaciones de google, por encima de las filas de elementos. Sólo he encontrado ejemplos con RecyclerViews, y no quiero usarlo. He terminado con ListView y todas las demás cosas. Tal vez alguien me puede ayudar 🙂 Gracias de antemano

Puede crear NavigationView utilizando la biblioteca de soporte de diseño de Android sin tener dolor para crear listview o RecyclerView, todo creado por android.

Para agregarlo a su proyecto necesita agregar la biblioteca de soporte de diseño de android a su proyecto, añada debajo de la línea en build.gradle

 compile 'com.android.support:design:22.2.0 

Echa un vistazo a las características de soporte de diseño de Android aquí

Primero crea un encabezado (header.xml)

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="190dp" android:background="@drawable/background_material" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="nyname" </RelativeLayout> 

A continuación, cree un archivo de recursos de menú, los elementos del menú serán los elementos mostrados en el cajón (drawer.xml)

 <menu xmlns:android="http://schemas.android.com/apk/res/android"> <group android:checkableBehavior="single"> <item android:id="@+id/first1" android:checked="false" android:icon="@drawable/icon1" android:title="@string/string1" /> <item android:id="@+id/second2" android:checked="false" android:icon="@drawable/icon2" android:title="@string/string2" /> </menu> 

A continuación crear un archivo DrawerLayout , dentro de la gaveta que se puede ver He incluido una Toolbar y un 'FrameLayout`. Cuando se hace clic en el elemento de la bandeja, puede reemplazar el fragmento.

También dentro de él está el NavigationView con estos parámetros:

 app:headerLayout="@layout/header" app:menu="@menu/drawer" android:layout_gravity="start" 

app:headerLayout es el header.xml que creamos en el paso 1. app:menu es el elemento de recurso de menú ie drawer.xml

 <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/drawer" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" tools:context=".MainActivity"> <LinearLayout android:layout_height="match_parent" android:layout_width="match_parent" android:orientation="vertical" > <include android:id="@+id/toolbar" layout="@layout/tool_bar" /> <FrameLayout android:id="@+id/frame" android:layout_width="match_parent" android:layout_height="match_parent"> </FrameLayout> </LinearLayout> <android.support.design.widget.NavigationView android:id="@+id/navigation_view" android:layout_height="match_parent" android:layout_width="wrap_content" android:layout_gravity="start" app:headerLayout="@layout/header" app:menu="@menu/drawer" /> </android.support.v4.widget.DrawerLayout> 

A continuación, en MainActivity, expanda AppcompatActivity,

 public class MainActivity extends AppCompatActivity { ............................................ 

Intialise NavigationVer y llamar a setNavigationItemSelectedListener para obtener eventos de clic,

 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Initializing Toolbar and setting it as the actionbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); //Initializing NavigationView navigationView = (NavigationView) findViewById(R.id.navigation_view); //Setting Navigation View Item Selected Listener to handle the item click of the navigation menu navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() { // This method will trigger on item Click of navigation menu @Override public boolean onNavigationItemSelected(MenuItem menuItem) { //Checking if the item is in checked state or not, if not make it in checked state if(menuItem.isChecked()) menuItem.setChecked(false); else menuItem.setChecked(true); //Closing drawer on item click drawerLayout.closeDrawers(); //Check to see which item was being clicked and perform appropriate action switch (menuItem.getItemId()){ //Replacing the main content with ContentFragment case R.id.first1: SomeFragment fragment = new SomeFragment(); android.support.v4.app.FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); fragmentTransaction.replace(R.id.frame,fragment); fragmentTransaction.commit(); return true; ................... 

Paso a paso el procedimiento para crear la navegación vaya aquí

Cómo se vería:

introduzca la descripción de la imagen aquí

  • Cómo cambiar el color del texto y el icono del elemento de menú seleccionado en el Gaveta de navegación mediante programación utilizando java
  • setSelection no funciona - getSelectedItemPosition siempre devuelve -1
  • mostrar el cajón de navegación en el botón del menú físico
  • ¿Qué significa (savedInstanceState)
  • Cambiar los colores de los elementos del menú Gavetas de navegación
  • Barra de herramientas que no aparece en los dispositivos pre lollipop
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.