Android ExpandableListView – Buscando un tutorial

Estoy tratando de programar una interfaz de Android que utiliza una lista expandible en el lado y un fragmento en el otro lado para que pueda cargar diferentes recursos haciendo clic en los hijos de la lista ampliable. Pero por desgracia no puedo encontrar buenos tutoriales sobre esta lista en cualquier lugar. Sí, he buscado en las demostraciones de API y he hecho una lista normal con un BaseExpandableListAdapter, pero aún así, entender la lista de bien es un poco difícil sin un buen tutorial, ¿tienes alguna buena o información que podría comprobar?

Puede encontrar un ejemplo de trabajo de la vista de lista expandible mediante los siguientes enlaces:

  • ExpandableListView

  • Expandable ListView en ANDROID

  • Android Expandable ListView simple Ejemplo en android.

Para hacer clic en el niño, puede manejar de esta manera.

getExpandableListView().setOnChildClickListener(new OnChildClickListener() { public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) { // your code... } }); 

Espero que esto te ayudará. Gracias..

Crear lista de artículos

 List<ParentItem> itemList = new ArrayList<ParentItem>(); ParentItem parent1 = new ParentItem(); parent1.getChildItemList().add(new ChildItem()); parent1.getChildItemList().add(new ChildItem()); parent1.getChildItemList().add(new ChildItem()); ParentItem parent2 = new ParentItem(); parent2.getChildItemList().add(new ChildItem()); parent2.getChildItemList().add(new ChildItem()); parent2.getChildItemList().add(new ChildItem()); itemList.add(parent1); itemList.add(parent2); ExpandableListViewAdapter adapter = new ExpandableListViewAdapter(context, itemList); 

Objetos de datos

 public class ParentItem { private List<ChildItem> childItemList; public ParentItem() { childItemList = new ArrayList<ChildItem>(); } public List<ChildItem> getChildItemList() { return childItemList; } } public class ChildItem { // filll with your data } 

Adaptador

 public class ExpandableListViewAdapter extends BaseExpandableListAdapter { private static final class ViewHolder { TextView textLabel; } private final List<ParentItem> itemList; private final LayoutInflater inflater; public ExpandableListViewAdapter(Context context, List<ParentItem> itemList) { this.inflater = LayoutInflater.from(context); this.itemList = itemList; } @Override public ChildItem getChild(int groupPosition, int childPosition) { return itemList.get(groupPosition).getChildItemList().get(childPosition); } @Override public long getChildId(int groupPosition, int childPosition) { return childPosition; } @Override public int getChildrenCount(int groupPosition) { return itemList.get(groupPosition).getChildItemList().size(); } @Override public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, final ViewGroup parent) { View resultView = convertView; ViewHolder holder; if (resultView == null) { resultView = inflater.inflate(android.R.layout.test_list_item, null); //TODO change layout id holder = new ViewHolder(); holder.textLabel = (TextView) resultView.findViewById(android.R.id.title); //TODO change view id resultView.setTag(holder); } else { holder = (ViewHolder) resultView.getTag(); } final ChildItem item = getChild(groupPosition, childPosition); holder.textLabel.setText(item.toString()); return resultView; } @Override public ParentItem getGroup(int groupPosition) { return itemList.get(groupPosition); } @Override public int getGroupCount() { return itemList.size(); } @Override public long getGroupId(final int groupPosition) { return groupPosition; } @Override public View getGroupView(int groupPosition, boolean isExpanded, View theConvertView, ViewGroup parent) { View resultView = theConvertView; ViewHolder holder; if (resultView == null) { resultView = inflater.inflate(android.R.layout.test_list_item, null); //TODO change layout id holder = new ViewHolder(); holder.textLabel = (TextView) resultView.findViewById(android.R.id.title); //TODO change view id resultView.setTag(holder); } else { holder = (ViewHolder) resultView.getTag(); } final ParentItem item = getGroup(groupPosition); holder.textLabel.setText(item.toString()); return resultView; } @Override public boolean hasStableIds() { return true; } @Override public boolean isChildSelectable(int groupPosition, int childPosition) { return true; } } 

Te dio

 ============================== +Parent 1 ============================== -child 1.1 ============================== -child 1.2 ============================== -child 1.3 ============================== +Parent 2 ============================== -child 2.1 ============================== -child 2.2 ============================== -child 2.3 ============================== 

De esta manera puede manejar eventos:

 getExpandableListView().setOnChildClickListener(new OnChildClickListener() { public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) { // your code... } } 
  • Android spinner cerrar
  • ¿Cómo puedo obtener la altura del teclado del método de entrada actual sin mostrarlo?
  • Ampliación de la clase de Android View para agregar un dropshadow
  • Vista web de Android ui
  • Diferente ancho de diseño dentro de RecyclerView y LinearLayout normal
  • Android deslizar la tarjeta con una pizca para ampliar la vista de la imagen con SwipeFlingAdapterView biblioteca
  • Selección de niños en ExpandableListView
  • Cómo obtener un elemento de un niño en ExpandableListView?
  • Ver la inyección de dependencia con la daga 2
  • Multi-nivel ExpandableListView en Android
  • Android: Agregar vista dinámicamente en un diseño anidado
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.