Как управлять событиями и данными в социальном приложении Android Как в Instagram с использованием общих шаблонов проектирования - PullRequest
0 голосов
/ 03 марта 2019

Эй, ребята, я начинаю проектировать и разрабатывать приложения для Android, такие как Instagram!используя MVVM шаблон проектирования.Мое приложение выглядит примерно так: myApp

Как вы можете видеть, у моего приложения есть список сообщений, каждый элемент сообщения которых является ViewPager, и внутри каждого ViewPager у нас есть два типа сообщений.дочерний элемент.

  1. PhotoType => PhotoFragment
  2. VideoType => VideoFragment

показать дерево компонентов приложения:

- MyActivity
-- MediaFragment          --> MediaFragmentViewModel
--- MediaRecyclerView     --> RecyclerAdapter
---- MediaViewPager       --> PagerAdapter
----- MediaPhotoFragment  --> MediaPhotoFragmentViewModel
----- MediaVideoFragment  --> MediaVideoFragmentViewModel

внутри MyActivity у нас есть FrameLayout, который в нем заменен MediaFragment, внутри MediaFragment мы должны получить MediaData как List<Media> с нашего сервера и с помощью mediaFragmentViewModel установить данные адаптера RecyclerView,все в порядке, но у меня есть большая проблема с прокруткой RecyclerView и воспроизведением видео, когда элемент MediaVideoFragment видим, а также приостановкой видео, когда элемент MediaVideoFragment невидим.поэтому я делаю большой поиск и нахожу некоторые вопросы, подобные моему, здесь, в одном из них предлагается использовать VideoPlayerManager .поэтому я использую его, чтобы определить, когда и какой вид видны?но есть большая проблема в использовании VideoPlayerManager в сотрудничестве с шаблоном MVVM !!!

Я просто хочу знать, могу ли я получить событие из вида исоздать событие ответа, чтобы оно могло повлиять на другое представление в моей ViewModel?(так же, как приложение для Instagram воспроизводит видео и приостанавливает его!)

РЕДАКТИРОВАТЬ: Мой второй вопрос об использовании MVVM для такого рода проектов, использует MVVM, подходящий для этого проекта, или нам нужночто-то еще, например, MVP или MVI или ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...