Android WebView作为ListView行未正确滚动

Android WebView作为ListView行未正确滚动,android,webview,scroll,textview,Android,Webview,Scroll,Textview,我正在尝试创建一个ListView,它应该像股票消息应用程序或GTalk那样工作。它显示了两个人之间的对话。WebView负责显示对话的HTML文本,包括几个gif动画笑脸-当新消息到达时,TextView显然无法显示这些动画笑脸,列表必须一直滚动到底我使用的是listview.setSelection。。。为此 现在,如果WebView的高度比正常值长,ListView会出错并滚动到靠近列表末尾的项目,而不是最后一个项目。就像我说的,我认为这个列表在计算孩子的身高时有问题。如文档所述,已禁用L

我正在尝试创建一个ListView,它应该像股票消息应用程序或GTalk那样工作。它显示了两个人之间的对话。WebView负责显示对话的HTML文本,包括几个gif动画笑脸-当新消息到达时,TextView显然无法显示这些动画笑脸,列表必须一直滚动到底我使用的是listview.setSelection。。。为此 现在,如果WebView的高度比正常值长,ListView会出错并滚动到靠近列表末尾的项目,而不是最后一个项目。就像我说的,我认为这个列表在计算孩子的身高时有问题。如文档所述,已禁用ListView上的smoothScroll

在ListView中用作行的布局文件:

我还没有得到任何有用的答案,我正在求助于我脑海中出现的最后一个解决方案,这确实是一个令人讨厌的解决方案,然后我就和Android吻别了!你可以猜到,我已经厌倦了Android阻碍开发的各个方面

解决方案是使用WebView作为ListView行来显示我想要的内容。问题是,如果WebView的内容是3行,那么ListView就会变得疯狂,不能正确地滚动到列表的底部。我的猜测是,它无法计算每个子行的高度,并且错误地导航到列表的中间而不是底部


我已经读了太多类似的问题,比如,我没有得到很好的回答

问题在于,webview在创建和测量时没有大小。只有在webview加载和呈现内容后,高度才有效,而listview通常太晚无法计算大小。 你是否考虑过把高度固定在布局上?
不使用listview而使用一个大的webview如何?

与您之前的问题更相关;但是我假设你没有用AnimationDrawable获得你的动画工作/想要的结果@哈维,我已经试过了!问题是,如何将其与文本内联?我从来没有必要亲自尝试过,但您可以在textview中使用compoundDrawables。这可能不是您想要的,因为您不能将图像/笑脸放在文本中,只能放在文本旁边。然后,我认为您最好创建自己的视图/视图组,该视图/视图组能够处理多个文本段/绘图。至少可以说,这是一个有趣的问题。@Jave现在这就是为什么我说我厌倦了Android…如果它是在Windows Mobile中,我只知道如何处理它,而不用痛苦地操纵现有的控件。在Android的例子中,任何人都可以创建一个开放式框架,并断言开发者有自由做他们想做的事情!!!谷歌让我们像这样束手无策,真丢脸。。。无论如何,谢谢你的回复!即使我明白你的意思,我也不同意你的观点。我真的很喜欢为android开发。但话说回来,我还没有尝试过任何其他平台。不管怎样,祝你的项目好运:我对此表示怀疑。问题是,我不能为WebView使用固定高度,因为它将显示消息的内容,并且消息的长度事先不知道,我不希望滚动条出现在WebView上!和我在另一个问题中所说的一样,WebView也有自己的问题,不能滚动到页面底部properly@M2X你找到解决这个问题的办法了吗?我也面临同样的问题problem@AkhileshSk不,不幸的是我没有。。。我最终选择了另一种方式,忘记了GIF动画,而是显示静态图像@M2X我找到了一个解决方案,在scrollview中添加所有的webview项,而不是在listview中添加,这肯定会解决您的问题。Prakash Nadar的结论非常正确
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" android:background="#f7f7f7">

    <ImageView
        android:id="@+id/imgFriendAvatarChat"
        android:layout_width="48dp"
        android:layout_height="48dp"
        android:layout_marginBottom="5dp"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp"
        android:layout_marginTop="5dp"
        />

    <WebView
        android:id="@+id/friendMessageWebView"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="5dp"
        android:layout_marginTop="5dp"
        android:layout_marginRight="5dp"
        />

</LinearLayout>