Tengo un ListView
dentro de la cual me dynamicaly llenar los elementos de la lista en el método getView()
, con una combinación de TextView
, y un ImageView
.Android: calcular el tamaño de la vista en el interior MyAdapter :: getView
Necesito calcular el tamaño de la vista de texto e imagen dentro de getView, así que podré establecer visibility=gone
, si la vista es demasiado grande. Tring:
public View getView(int position, View convertView, ViewGroup parent) {
..
View listItem=view.findViewById(R.id.listItem);
ImageView imageView=(ImageView)view.findViewById(R.id.myImg);
TextView textView=(TextView)view.findViewById(R.id.mytxt);
if (imageView.getRight()>listItemText.getRight()) {
imageView.setVisibility(View.GONE);
}
if (textView.getRight()>listItemText.getRight()) {
textView.setVisibility(View.GONE);
}
..
}
Sin embargo, desde que estoy en el interior del getView()
, los valores de diseño aún no están creadas, por lo que obtener falsos valores de la llamada View.getRight()
.
¿Alguna idea de cómo hacer esto?
¿Por qué no decides que de acuerdo con la longitud de la Cadena que vas a colocar dentro de TextView? – Thommy
porque la misma longitud de texto puede tener un ancho real diferente – Tomer
¿Qué le parece calcular el ancho completo y restar el ancho de ListItemtext? Si su contenido de vista de texto y contenido de vista de imagen es lo suficientemente pequeño para ese ancho en particular. Muévelo u ocúltelo. Solo una pregunta curiosa ¿no puedes elipsiar el texto y escalar la imagen para que siempre se muestre? –