¿Por qué utilizar Inflater en listview?

  • Siempre tuve ambigüedad sobre por qué necesitamos usar inflater en android, ¿Por qué se utilizan en ListView para diseños personalizados (como a continuación)?
  • ¿Qué es un Inflater?
  • ¿Cuál es la ventaja de usar Inflater?

public class MobileArrayAdapter extends ArrayAdapter<String> { private final Context context; private final String[] values; public MobileArrayAdapter(Context context, String[] values) { super(context, R.layout.list_mobile, values); this.context = context; this.values = values; } @Override public View getView(int position, View convertView, ViewGroup parent) { LayoutInflater inflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); View rowView = inflater.inflate(R.layout.list_mobile, parent, false); TextView textView = (TextView) rowView.findViewById(R.id.label); ImageView imageView = (ImageView) rowView.findViewById(R.id.logo); textView.setText(values[position]); 

Gracias,

¿Qué es un Inflater?

Para resumir lo que dice la documentación de LayoutInflater … Un LayoutInflater es uno de los servicios de sistema de Android que se encarga de tomar los archivos XML que definen un diseño y convertirlos en objetos de View . A continuación, el sistema operativo utiliza estos objetos de vista para dibujar la pantalla.

Siempre he tenido la ambigüedad de por qué necesitamos utilizar inflater en android, ¿Por qué se utilizan en Android ListView para un diseño personalizado?

Típicamente, usted nunca necesita usar directamente LayoutInflater. Android hace la mayor parte de la inflación de diseño para usted cuando llama a setContentView() en el método onCreate() de su actividad. Así que, como programador, son responsables de asegurarse de que las opiniones se infla . Ahora desea inflar vistas en el contexto de un ListView. La clase Adaptador puede hacer la inflación si no desea personalizar cada elemento. Pero si quieres personalizar las vistas que se muestran en una lista, tendrás que inflar manualmente cada vista con LayoutInflater, ya que no hay otro método existente que puedas usar.

¿Cuál es la ventaja de usar Inflater?

No hay ninguna ventaja en usarlo. Se requiere que utilices LayoutInflater de alguna forma para inflar tus diseños XML estáticos.

Como alternativa, puede crear vistas dinámicamente con código java. Sin embargo, necesitará llamar a métodos para establecer cada propiedad para la vista a mano. En mi opinión, es más fácil utilizar el proceso XML / inflación. Además, Android pre-procesa sus archivos XML en tiempo de construcción, por lo que esto resulta en un tiempo de ejecución más rápido.

Siempre tuve ambigüedad en por qué wee necesidad de utilizar inflater en android, ¿Por qué se utilizan en android ListView para un diseño personalizado?
Se utilizan para crear las vistas para cada fila.

¿Qué es un Inflater?
Un servicio de sistema que crea una vista fuera de un diseño XML.

En el siguiente código estoy tratando de entender por qué se utiliza Inflator?
El inflador se utiliza para crear las vistas de las filas.

¿Cuál es la ventaja de usar Inflater?
¿Comparado con que? ¿Cómo desea crear las vistas fuera del diseño XML?

En pocas palabras, un inflador le permite crear una vista desde un archivo de diseño de recursos para que no sea necesario crear todo mediante programación.

En su ejemplo, inflar el diseño R.layout.list_mobile . Esto le permite acceder a todas las vistas dentro de ella. Por ejemplo, a continuación, llame a:

 TextView textView = (TextView) rowView.findViewById(R.id.label); 

Llamando a rowView.findViewById() usted puede tener acceso a las vistas que fueron creadas dentro de esa disposición. A menudo para ListViews tendrá un archivo XML de fila que luego inflar y poner sus datos en las vistas.

  • ListView onItemClick no funciona en la actividad
  • El objetivo no debe ser nulo utilizando la Biblioteca Picasso
  • ANDROID: divide la pantalla en 2 partes iguales con 2 listas
  • Desplazamiento en listview con altura de celda diferente
  • La posición de desplazamiento salta a los elementos de la lista anterior mientras se desplaza hacia arriba en la vista de lista personalizada
  • ViewPagers en un ListView mostrando elementos de la lista en blanco
  • ListView con elementos triangulares
  • HeaderViewListAdapter se bloquea de forma aleatoria
  • Indicador ViewPager con ListView personalizado
  • ¿Es posible cambiar el color del FadingEdge de un ListView?
  • Carga perezosa de SQLite
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.