ScrollView alawys прокручивается на дно

Я определил scrollview с texteedit в моем макете:

<ScrollView android:fillViewport="true" android:layout_marginBottom="50dip" android:id="@+id/start_scroller" android:layout_height="fill_parent" android:layout_width="fill_parent" android:fadingEdge="none"> <TextView android:id="@+id/text" android:layout_width="fill_parent" android:layout_height="wrap_content" > </TextView> </ScrollView> 

Я добавляю текст в этот ScrollView следующим образом:

 public void writeToLogView(String textMsg) { if (text.getText().equals("")) { text.append(textMsg); } else { text.append("\n" + textMsg); scroller.scrollBy(0, 1000000); } } 

Как вы можете видеть, я добавляю текст и пытаюсь прокрутить до конца ScrollView. К сожалению, это не сработало. Он прокручивается вниз, но не всегда, и не всегда на дно. Любые намеки?

Или после изменения размера вида в scrollView используйте:

 scroller.post(new Runnable() { public void run() { scroller.fullScroll(ScrollView.FOCUS_DOWN); } }); 

После добавления текста попробуйте использовать размеры вашего TextView, чтобы рассчитать, где вы должны прокручиваться, а не константу, например:

 scroller.post(new Runnable() { public void run() { scroller.scrollTo(text.getMeasuredWidth(), text.getMeasuredHeight()); } }); 

Для тех, кто использует аннотации Android , вы можете сделать это следующим образом:

 @ViewById ScrollView myScrollView; @AfterViews protected void init() { scrollToEnd(); } @UiThread(delay=200) void scrollToEnd() { myScrollView.fullScroll(ScrollView.FOCUS_DOWN); } 
Intereting Posts
Как избежать «Не начата деятельность, ее текущая задача была перенесена на передний план»? Android: формат даты в строке Вызов сервисов Google Play GoogleApiClient.connect () из Activity onStart () вызывает кратковременный сбой OpenGL (ошибки NvRmChannelSubmit и т. Д.) Повторная установка броска исключения IllegalArgumentException для асинхронного вызова DELETE FormUrlEncoded Как программно показывать и скрывать панель действий в одном действии Сбой сохранения состояния – цель не в менеджере фрагментов (setTargetFragment) Получить привязку из класса просмотра Ошибка инструментария из-за «java.lang.IllegalAccessError». Gradle + Espresso ОФИЦИАЛЬНО невозможно получить цену биллингового элемента внутри приложения во время выполнения? Firebase onMessageReceived не вызывается, когда приложение в фоновом режиме Расширения OpenGL ES 2.0 на устройствах Android Невозможно найти причину «вы должны указать способ создания индикатора вкладок», Мозаичная галерея для отображения изображений в стиле Мозаика в андроиде для более низких sdk? Android: как иметь центрированное фоновое изображение в представлении Не удалось создать содержимое вкладки, потому что не удалось найти представление с ошибкой id -1 XML в Android Eclipse?