¿Cómo implementar el cajón de navegación androide expandible con subitems?
¿Cómo implementar el cajón de navegación de Android como este?
TopLevelView1 ~ TopLevelView4 puede seleccionar y no hay niños
TopVevelView5 puede collaspe
- ¿Cómo abrir un nuevo fragmento del cajón de navegación?
- Cajón de navegación coexistente y diseño de panel deslizante
- Utilizar smoothScrollTo en Fragmento
- ¿Cómo puedo hacer que el cajón de navegación no cierre completamente el cajón izquierdo?
- Cómo actualizar la lista del cajón de navegación tan pronto como su abrir / cerrar en Android
Mi pregunta es que si mi estructura de grupo como este por ejemplo
Todas
Miró fijamente
Categoría
Mp3
—-TXT
—-doc
—- pdf
Cuando selecciono todo entonces mostrar todo el archivo.
Cuando selecciono stared entonces muestre el archivo stared solamente.
Cuando selecciono mp3 entonces sólo muestro archivos mp3.
Y la categoría puede expandirse y contraerse.
- Cómo configurar un observador para actualizar el cajón de navegación después de que el método onActivityResult recibió un resultado de intención
- Cajón de navegación de estilo de diseño de Android 5.0 para KitKat
- Color de fondo ondulado de Android
- Menú contextual inapropiado dentro de un fragmento
- SoftInputMode en fragmentos
- Hacer clic en icono de hamburguesa en la barra de herramientas no abre Cajón de navegación
- ¿Cómo puedo hacer que un elemento específico del cajón de navegación aparezca seleccionado?
- Desactivar oscurecimiento oscuro en el cajón de navegación
Para la navegación:
-
Alternativa 1:
Deslizante menú, que sin duda me volvería a ir con. Incluso utilizado por aplicaciones populares como LinkedIn y Foursquare y fácil de implementar y usar. Explicación completa y ejemplos de códigos fuente: SlidingMenu – GitHub
-
Alternativa 2:
Cajón de navegación de Android. Si desea personalizar completamente todo usted mismo sin utilizar bibliotecas, esta es su opción. Puede comprobar los códigos y cómo hacerlo desde el sitio web de desarrolladores de Android: Creación de un cajón de navegación
Ver dentro de su menú de desplazamiento / deslizante:
-
Alternativa 1:
Android predeterminado ExpandableListView. Enlaces: Desarrolladores de Android , androidhive
-
Alternativa 2:
AnimatedExpandableListView, que se implementa desde ExpandableListView, pero cuando se hace clic en un elemento, la expansión se realiza con una animación suave que puede preferir utilizar para una mejor apariencia. AnimatedExpandableListView
Prueba algo así
<android.support.v4.widget.DrawerLayout android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" > <FrameLayout android:id="@+id/drawer_list_container" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="start" > <ExpandableListView android:id="@+id/drawer_list" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center"/> </FrameLayout> </android.support.v4.widget.DrawerLayout>
Código Java:
drawerListView.setAdapter(new ExpandableListAdapter() { @Override public void unregisterDataSetObserver(DataSetObserver observer) { // TODO Auto-generated method stub } @Override public void registerDataSetObserver(DataSetObserver observer) { // TODO Auto-generated method stub } @Override public void onGroupExpanded(int groupPosition) { // TODO Auto-generated method stub } @Override public void onGroupCollapsed(int groupPosition) { // TODO Auto-generated method stub } @Override public boolean isEmpty() { // TODO Auto-generated method stub return false; } @Override public boolean isChildSelectable(int groupPosition, int childPosition) { // TODO Auto-generated method stub return false; } @Override public boolean hasStableIds() { // TODO Auto-generated method stub return true; } @Override public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { // TODO Auto-generated method stub TextView view = new TextView(getApplicationContext()); view.setText("group " + groupPosition); return view; } @Override public long getGroupId(int groupPosition) { // TODO Auto-generated method stub return groupPosition; } @Override public int getGroupCount() { // TODO Auto-generated method stub return 5; } @Override public Object getGroup(int groupPosition) { // TODO Auto-generated method stub return null; } @Override public long getCombinedGroupId(long groupId) { // TODO Auto-generated method stub return 0; } @Override public long getCombinedChildId(long groupId, long childId) { // TODO Auto-generated method stub return 0; } @Override public int getChildrenCount(int groupPosition) { // TODO Auto-generated method stub return 5; } @Override public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { TextView view = new TextView(getApplicationContext()); view.setText("child " + groupPosition); return view; } @Override public long getChildId(int groupPosition, int childPosition) { // TODO Auto-generated method stub return childPosition ; } @Override public Object getChild(int groupPosition, int childPosition) { // TODO Auto-generated method stub return null; } @Override public boolean areAllItemsEnabled() { // TODO Auto-generated method stub return false; } });
- Conversión de imagen a vídeo con efecto de transición
- React Native: Actualiza el diseño de la aplicación después de mostrar el teclado