recyclerview中的Webview不会扩展到位.(不缩小底部)

onu*_*pus 9 html android android-webview recycler-adapter android-recyclerview

我正在研究类似于'谷歌收件箱'的东西,这需要我在recyclerView中有多个webview,我可以通过点击标题来扩展和折叠内容,这将添加/删除标题下的webview.

到目前为止,这是该项目的要点

Fragment
 -> RecyclerView (match_parent on height and width)
   -> Adapter + ViewModel/Model
     -> XML + Databinding.
Run Code Online (Sandbox Code Playgroud)

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)
Run Code Online (Sandbox Code Playgroud)

默认情况下,所有Web视图的可见性都消失了,当用户第一次点击标题时,调用webview.loadDataWithBaseUrl()时会加载它应该加载的内容并打开可见性.webview缩放其高度以完全显示内容.当用户再次单击标题时,它会将可见性变为已消失,整个行将折叠为标题.再次单击先前展开的标题,我不必再次加载数据,而只是打开可见性.

一切都很有效,但对于这个非常讨厌的问题. https://nofile.io/f/UBCh5PO7Wv9/screencapture-1525973579493.mp4这是Google收件箱中的录音和我的应用程序有完全相同的问题.

当我点击标题进行扩展并在webview中加载内容时,一些webview会在下面展开,我的意思是标题保持不变,看起来内容加载在点击的标题下方.

但对于某些内容,webviews会向上扩展,这意味着它会推动单击的标题以展开内容.这意味着我在看内容的结尾而不是顶部.就像收件箱的这种情况一样,我正在查看电子邮件的结尾,但不是在电子邮件的顶部.

我在我分享的视频中复制了电子邮件的来源,并使用它们加载我的网页视图,这是我的发现.

  • 它与加载的内容无关,因为即使我混淆了它也会发生
  • 它与webview的计数或给定webview的索引无关
  • 如果我将内容从上到下展开,就不会发生这种情况.意思是从索引0..n - >但是但它总是发生在我把所有东西都折叠起来并且我从下到上扩展内容......从n到0.

在此输入图像描述

基本上,如果A和B是webview的顶部和底部边缘,理想情况下A应该保持稳定,B应该增加向下推动它下面的recyclerView内容.但相反,当我从下向上扩展内容时,底线B保持稳定并且webview增加并推动标题和给定行上方的项目以及它导致查看结束时的恼人行为内容比谷歌收件箱中的顶部更好.

这是一个发生什么的gif - 当我点击紫色标题时,webview(粉红色)加载电子邮件.当我点击最后一个时,webview将在下面展开.但是当我点击最后一个时,它会向上扩展,然后向上推动标题.

有什么想法吗?救命?

谢谢

Tpo*_*6oH 0

使 webview 可见后调用scrollToPositionscrollToPositionWithOffset,以强制回收器视图滚动到子视图的开头,在这种情况下是您的标题。