¿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 puedo hacer que un elemento específico del cajón de navegación aparezca seleccionado?
- ¿Qué está pasando con mi actividad de cajón de navegación de Android?
- El cajón de navegación en android no está en pantalla completa
- Gaveta de navegación: agrega encabezados en listview
- Android Volver al primer fragmento en navigationdrawer
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 puedo cambiar el tamaño de texto del elemento NavigationView?
- Diseño del cajón de navegación el título en la barra de herramientas no cambia
- No se puede bloquear el evento de clic de botón de inicio de la barra de herramientas
- Norma de arquitectura de Android MVP para cargar interfaz de usuario con clase Model que tiene recurso android
- Nuevo ActionBarDrawerToggle cuando se utiliza AppCompatActivity
- Estado del fragmento del cajón de navegación de Android
- Android: 2 o más ExpandableListView dentro del Gaveta de navegación
- FindViewById (int) en Activity no se puede aplicar a (int, android.support.v7.widget.Toolbar
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