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
- Evento antes de que DrawerLayout se abra
- NavigationDrawer RecyclerVer elementos seleccionados cambiar de color
- trasparent statusbar navigationdrawer después de setstatusbarcolor
- ¿Cómo puedo cambiar el icono de actionbardrawertoggle, android?
- Cambio de color de la imagen en el cajón de navegación
- Android NavigationDrawer transparencia
- Diseño de la gaveta de navegación de Android
- Ocultación de la barra de acción contextual mientras el cajón de navegación está abierto
- Cómo crear un cajón de navegación mediante Android Design Support Library?
- Android Navigation Drawer y windowActionBarOverlay = true
- Suscribir un cajón de navegación a un Observable
- ¿Qué tamaños debe tener una imagen en un cajón de navegación?
- Cerrar el cajón de navegación después de abrir otra actividad
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:
- ¿Cómo se calcula el tiempo del rezo musulmán en una aplicación androide?
- Detener una ejecución en un hilo independiente