Listview nested en Android

¿Es posible / aconsejable tener una vista de lista anidada?

es decir, una lista que está dentro de una fila de otra lista de vista?

un ejemplo sería donde mi lista principal muestra publicaciones de blog, y luego en cada fila, tendría otra vista de lista para los comentarios de cada publicación (que sería contraíble)

Tuve el mismo problema hoy, así que esto es lo que hice para resolverlo:

Tengo un ListView, con CustomAdapter, y en el getView de customAdapter, tengo algo como esto:

LinearLayout list = (LinearLayout) myView.findViewById(R.id.list_musics); list.removeAllViews(); for (Music music : albums.get(position).musics) { View line = li.inflate(R.layout.inside_row, null); /* nested list's stuff */ list.addView(line); } 

Por lo tanto, reanudar, no es posible anidar en ListViews, pero puede crear una lista dentro de una fila usando LinearLayout y llenarlo con código.

¿Es lo que estás buscando ExpandableListView ? Por supuesto, eso está limitado a solo dos niveles de listados (pero parece que funcionaría según sus necesidades).

¿ Suena como lo que estás buscando? Si no es así, o si esto no funciona, sugeriría tener dos vistas de lista: una de, digamos, publicaciones de blog y la segunda de comentarios, y una acción en una publicación de blog lo llevará a la segunda vista , poblado con los comentarios relevantes.

puedes hacerlo así:

dentro de la matriz padre vista de fila xml diseño agregue el siguiente diseño de tabla

    

entonces tienes que hacer un diseño para la lista de niños con el nombre reply_row.xml

     

en el método getview del adaptador de vista de lista principal, agregue el siguiente código:

 TableLayout replyContainer = (TableLayout) // vi is your parent listview inflated view vi.findViewById(R.id.table_show); LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); //child listview contents list String [] replys = {"a","b","c","d"}; for (int i=0;i 

Será mejor que uses un ListView, no nested. Anidar ListView es una forma ineficiente. Es posible que ListView no se desplace suavemente y ocupe más memoria.

Puede organizar su estructura de datos para mostrar datos nesteds en un ListView. O puede usar este proyecto PreOrderTreeAdapter . Es conveniente mostrar datos nesteds en ListView o RecyclerView. Se puede usar para hacer que ListView o RecyclerView sean colapsables, simplemente cambie la forma en que proporciona sus datos y notifique al adaptador.