Оказывается, что при выполнении определенного запроса он дает мне данные для создания расширяемого списка, при первом открытии расширенного списка он показывает, как это должно быть.
Image_1
Пока все в порядке, но когда я двигаюсь вверх, весь ExpandableListView игнорируется, и он показывает меня иначе, чем в первый раз.
Image_2
Это код адаптера, соответствующий списку:
@Override
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
ObjetosHistorico childText = (ObjetosHistorico) getChild(groupPosition, childPosition);
if (convertView == null) {
LayoutInflater infalInflater = (LayoutInflater) this._context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = infalInflater.inflate(R.layout.row_lista_historico, null);
}
CardView cardView = convertView.findViewById(R.id.cv_id_historico);
ctiMetodos.setBackgroundCardView(_context.getApplicationContext(),cardView);
//Aquí instanciamos los elementos de la cabecera.
TextView txtListChild = convertView
.findViewById(R.id.lblListItem);
TextView txtListChild2 = convertView
.findViewById(R.id.lblListItem2);
TextView txtListChild3 = convertView
.findViewById(R.id.lblListItem3);
TextView txtListChild4 = convertView
.findViewById(R.id.lblListItem4);
TextView txtListChild5 = convertView
.findViewById(R.id.lblListItem5);
TextView txtListChild6 = convertView
.findViewById(R.id.lblListItem6);
TextView txtListChild7 = convertView
.findViewById(R.id.lblListItem7);
TextView txtListChild8 = convertView
.findViewById(R.id.lblListItem8);
TextView txtListFacturaDescrip = convertView
.findViewById(R.id.lblListItemFactura);
TextView txtListFechaDescrip = convertView
.findViewById(R.id.lblListItem2Fecha);
//Instanciamos el linear layout para poder ponerlo en visible o en invisible, según el caso
LinearLayout llSkyBlue = convertView.findViewById(R.id.ll_sky_blue);
//Aqui le asigno el valor que ha leido la consulta y he introducido en el objeto
txtListChild.setText(childText.texto1);
txtListChild2.setText(childText.texto3);
txtListChild3.setText(childText.texto4);
txtListChild4.setText(childText.texto5);
txtListChild5.setText(childText.texto6);
txtListChild6.setText(childText.texto7);
txtListChild7.setText(childText.texto8);
txtListChild8.setText(childText.texto9);
//Le pongo la "cabecera" y color de fondo a la primera linea de la factura
//Si el texto1 es igual, al número de documento anterior y la posición del hijo es mayor a la 1, pues entonces ocultamos la cabecera
// ya que se trata del mismo número de documento.
if(childText.texto1.equals(Variables.sFacturaAnteriorAdapter) && childPosition > 0)
{
txtListFacturaDescrip.setVisibility(View.GONE);
txtListFechaDescrip.setVisibility(View.GONE);
txtListChild.setVisibility(View.GONE);
txtListChild2.setVisibility(View.GONE);
llSkyBlue.setVisibility(View.GONE);
}
else
{
txtListFacturaDescrip.setVisibility(View.VISIBLE);
txtListFechaDescrip.setVisibility(View.VISIBLE);
txtListChild.setVisibility(View.VISIBLE);
txtListChild2.setVisibility(View.VISIBLE);
llSkyBlue.setVisibility(View.VISIBLE);
}
//La variable sFacturaAnteriorAdapter coge el valor del número del documento.
Variables.sFacturaAnteriorAdapter = childText.texto1;
//Devolvemos la vista.
return convertView;
}
Я думаю, что проблема заключается в этой части кода адаптера. Спасибо