Vista anidada de android

¿Es posible / conveniente tener una lista anidada?

Es decir un listView que está contenido dentro de una fila de otro listview?

Un ejemplo sería donde mi lista principal está mostrando las entradas del blog, y luego en cada fila, tendría otra vista de lista para los comentarios de cada puesto (que sería plegable)

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

Tengo un ListView, con un CustomAdapter, y en el getView del 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, la reanudación, no es posible anidar a ListViews, pero puede crear una lista dentro de una fila utilizando LinearLayout y rellenarlo con código.

¿Es lo que está buscando el ExpandableListView ? Por supuesto, que se limita a sólo dos niveles de anuncios (pero parece que funcionaría para sus necesidades).

¿Esto suena como lo que estás buscando? Si no lo estás, o si esto no funciona, te sugeriría que tuvieras dos vistas de la lista: una de, por ejemplo, las entradas del blog, y la segunda de los comentarios, y una acción en un elemento de la entrada del blog te lleva a la segunda vista , Rellenado con los comentarios relevantes.

Usted puede hacerlo de esta manera:

Dentro de la plantilla xml de la fila listview principal agregue el siguiente diseño de tabla

  <TableLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/table_show" android:background="#beb4b4"> </TableLayout> 

Entonces usted tiene que hacer un diseño para la lista de niños con el nombre reply_row.xml

 <?xml version="1.0" encoding="utf-8"?> <TableRow android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="3dp" xmlns:android="http://schemas.android.com/apk/res/android"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/tv_reply_row" android:textColor="#000"/> </TableRow> 

En su método getview del adaptador listview padre agregue el código siguiente:

 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<replys.length;i++) { final View comments = inflater.inflate(R.layout.reply_row, null); TextView reply_row = (TextView) comments.findViewById(R.id.tv_reply_row) ; reply_row.setText(replys[i]); //for changing your tablelayout parameters TableLayout.LayoutParams tableRowParams=new TableLayout.LayoutParams (TableLayout.LayoutParams.FILL_PARENT,TableLayout.LayoutParams.WRAP_CONTENT); int leftMargin=3; int topMargin=2; int rightMargin=3; int bottomMargin=2; tableRowParams.setMargins(leftMargin, topMargin, rightMargin, bottomMargin); comments.setLayoutParams(tableRowParams); TableRow tr = (TableRow) comments; replyContainer.addView(tr); } 

Es mejor usar un ListView, no anidado. Anidar ListView es una manera ineficiente. Su ListView puede no desplazarse sin problemas y ocupar más memoria.

Podría organizar su estructura de datos para mostrar datos anidados en un ListView. O puede utilizar este proyecto PreOrderTreeAdapter . Es conveniente mostrar datos anidados en ListView o RecyclerView. Puede utilizarse para hacer que ListView o RecyclerView se puedan desplegar, solo cambie la forma en que proporciona sus datos antes de notificar al adaptador.

  • ListView con elementos triangulares
  • Guardar datos de ListView utilizando SharedPreferences
  • Cómo ajustar la altura de ListView cuando hay ExpandableListView incrustado en ListView
  • ListView y Id ocultos. ¿Como es posible?
  • ANDROID: divide la pantalla en 2 partes iguales con 2 listas
  • AbsListView unregisterIRListener () se llama
  • Guardar y volver a cargar ListView utilizando las preferencias compartidas
  • ¿Cómo crear una barra de desplazamiento alfabética que muestra toda la letra en android?
  • Cómo hacer clickable en toda la fila de la vista de lista?
  • ¿Cómo puedo configurar onClickListener en ArrayAdapter?
  • Cómo insertar ListView en CardView con barra de desplazamiento fuera de CardView?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.