Я пытаюсь создать ListView
, который должен действовать примерно так, как это делает приложение обмена сообщениями или GTalk. Это показывает разговор между двумя людьми. WebView
отвечает за отображение HTML-текста беседы ВКЛЮЧАЯ несколько анимаций в формате gif (смайлики - которые TextView
не может показать) Очевидно, что при получении нового сообщения список должен прокручиваться до самого дна (я использую listview.setSelection(...)
для этого)
Теперь, если высота WebView
больше, чем обычно, ListView
запутывается и прокручивается до элемента, близкого к концу списка, а не до последнего элемента. Как я уже сказал, я думаю, что у списка есть проблема с вычислением роста его детей. (Уже отключили smoothScroll
на ListView
, как упоминается в документации.
файл макета, используемый в качестве строк в ListView
:
<?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>
У меня нет никакого полезного ответа для этого или этого , и я прибегаю к одному последнему решению, которое приходит на ум, который на самом деле противный, а потом я целую Android до свидания! (Как вы можете догадаться, я уже сыт по горло Android, препятствующим каждому аспекту разработки.)
Решение там использует WebView
как ListView
строки, чтобы показать, что я хочу. Проблема в том, что если содержимое WebView
, скажем, 3 строки, то ListView сходит с ума и не прокручивает должным образом внизу списка. Я предполагаю, что он не может рассчитать высоту каждой дочерней строки и по ошибке перемещается к середине списка, а не к его нижней части.
Я уже прочитал слишком много похожих вопросов, таких как this , и я не получил хорошего ответа ...