Подходы к Иногда Загрузке Изображений В Макет RecyclerView

#android #kotlin #android-recyclerview #imageview #android-constraintlayout

Вопрос:

У меня есть RecyclerView программа, которая загружает список сообщений из массива. Иногда в сообщениях будет URL-адрес изображения, и я хотел бы показать изображение в том ViewHolder случае, если оно есть. Я бы очень хотел повторно использовать один и тот же файл макета, чтобы легко вносить изменения, а почтовые контейнеры выглядели одинаково. Каков наилучший подход для этого? У меня на уме три решения.

  1. Создайте ImageView в ViewHolder файле макета файл с высотой 0dp и измените высоту, если необходимо загрузить изображение.
  2. Создайте отдельный файл макета для сообщений с изображениями и используйте его всякий раз, когда требуется загрузить изображение. Мне это не нравится, потому что, если я изменю другие типы сообщений, мне также придется изменить сообщения с изображениями, чтобы они выглядели одинаково.
  3. Создайте ImageView программу программно и используйте ConstraintLayout.LayoutParams для настройки ограничений. Мне это не нравится, потому что кажется, что это легко сломается и будет трудно исправить.

Есть ли другие решения, которые лучше, чем те, которые я перечислил?

Ответ №1:

  1. Укажите ImageView в своем xml — файле высоту и ширину wrap_content . Он показывает изображение, когда изображение доступно, в противном случае оно не видно.
  2. Проверьте, не является ли URL-адрес строки нулевым, установите видимость android:visibility="visible" изображений . Когда URL-адрес строки равен нулю ImageView , видимость набора равна android:visibility="gone" .