@loly

Единый элемент для вывода аудио/видео/фото?

Есть необходимость вывести на странице один из форматов файлов. Файл выбирается пользователем на предыдущем макете (layout). Можно реализовать просто тремя различными элементами друг под другом и в onCreate скрывать ненужные, но это кажется каким то костылем.

Есть ли какое либо "красивое" решение подобной задачи?
  • Вопрос задан
  • 258 просмотров
Пригласить эксперта
Ответы на вопрос 2
artemgapchenko
@artemgapchenko
Попробуйте ViewStub. В зависимости от того, какой файл пришёл с предыдущего экрана, будете инфлейтить разные макеты (для аудио/фото/видео) и работать с ними.
Можно даже выделить три разных кастомных виджета, реализающих один общий интерфейс MediaFileHandler. В этом интерфейсе будет метод handleFile(File). При попадании на экран с выводом медиа вы инфлейтите соответствующий layout, содержащий ваш кастомный виджет, и вызываете у виджета handleFile().
Ответ написан
Rou1997
@Rou1997
Есть ли какое либо "красивое" решение подобной задачи?

Есть, создать свой кастомный View, внутри которого скрыть всю это не радующую глаз логику.

Поверьте мне, на самом деле костылей в вашем коде гораздо больше. Если вы хоть раз печатали findViewById пальцами по клавиатуре, то это тоже костыль по сравнению с кое-чем. Да, есть такая параллельная вселенная, где это делается автоматически))
Так что, надо расставлять приоритеты, и смотреть на вещи реально, потому что все костыли сразу - не победить.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы