Я работаю над чем-то похожим на «Входящие от Google», и мне нужно, чтобы у меня было несколько веб-просмотров внутри recyclerView, где я могу развернуть и свернуть содержимое, нажав на заголовок, который бы добавил / удалил веб-просмотр под заголовком.
Вот суть проекта до сих пор
Fragment
-> RecyclerView (match_parent on height and width)
-> Adapter + ViewModel/Model
-> XML + Databinding.
Структура XML
LinearLayout (vertical)
-> Header (match_parent on width, wrap_content on height)
-> WebView (match_parent on width, wrap_content on height)
(Webview does not scroll and it scales with the contents.
the recyler view handles scrolling)
По умолчанию все веб-просмотры отключены, и когда пользователь впервые щелкает заголовок, вызывается webview.loadDataWithBaseUrl () с содержимым, которое он должен загрузить, и включает видимость. веб-представление масштабируется, чтобы показать содержимое полностью. когда пользователь снова нажимает на заголовок, видимость исчезает, и вся строка сворачивается в заголовок. Снова щелкнув заголовок, который был ранее расширен, мне не нужно снова загружать данные, и я просто включаю видимость.
В основном все работает отлично, но это очень раздражающая проблема.
https://nofile.io/f/UBCh5PO7Wv9/screencapture-1525973579493.mp4 это запись из входящих сообщений Google, и у моего приложения точно такая же проблема.
когда я нажимаю на заголовок, чтобы развернуть его и загрузить содержимое в веб-просмотр, некоторые веб-просмотры расширяются ниже, и под этим я подразумеваю, что заголовок остается на месте, и похоже, что содержимое загружается ниже заголовка, на который нажали.
но для определенного контента веб-просмотры расширяются, а это означает, что он перемещает заголовок, по которому щелкнули, чтобы развернуть содержимое вверх. Что означает, что я смотрю на конец содержимого, а не на верх. как и в этом случае папки «Входящие», я просматриваю конец письма, но не вверху письма.
Я скопировал источники электронной почты в видео, которым я поделился, и использовал их для загрузки в своих веб-просмотрах, и вот мои выводы.
- это не имеет ничего общего с загруженным содержимым, потому что даже я путаю вещи, это происходит
- это не имеет никакого отношения к количеству просмотров веб-страниц или индексу данного веб-просмотра либо
- этого не произойдет, если я разверну содержимое сверху вниз. значение из индекса 0..n
-> НО НО НО это всегда происходит, когда у меня все свернуто и я расширяю содержимое снизу вверх .. с n до 0.
В основном, если A и B являются верхним и нижним краями веб-обзора, в идеале A должен оставаться стабильным, а B должен увеличиваться вниз, толкая содержимое recyclerView под ним. но вместо этого, когда я раскрываю содержимое снизу вверх, нижняя строка B остается стабильной, а веб-просмотр увеличивается и выталкивает вместе с ним заголовок и элементы над данной строкой, что вызывает раздражающее поведение при просмотре конца содержимое, чем в верхней части, как в папке входящих сообщений от Google, а также.
Вот гиф того, что происходит
- когда я нажимаю на фиолетовый заголовок, веб-просмотр (розовый) загружает электронную почту. когда я нажимаю на последний, веб-представление расширяется ниже. Но когда я нажимаю на 2-й последний, он расширяется выше, что также поднимает заголовок.
есть мысли? помочь?
спасибо