HorizontalScrollView не прокручивается после добавления вида в его макет

Я создаю бесконечную картинную галерею. Моя идея - удалить первый или последний дочерний вид из HorizontalScrollView, когда он прокручивается слишком далеко. Вот мой main.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <HorizontalScrollView
        android:id="@+id/scroller"
        android:layout_width="500dp"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true" >

        <LinearLayout
            android:id="@+id/mygallery"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:orientation="horizontal" />

    </HorizontalScrollView>
</RelativeLayout>

В обратном вызове "onTouch" я определяю, какое направление прокручивает View. Если он поворачивается влево, я должен удалить первый дочерний вид с изображением, добавить еще один в конец HorizontalScrollView и прокрутить его до второго изображения, потому что после удаления первого изображения мой вид показывает третье (последнее) изображение. Таким образом, первая картинка будет слева, последняя - справа.

Log.i(TAG, "Moving to the left");
scrollView.smoothScrollTo(0, 0); //moving to the start of scroller to see the first picture
removeLastPicture(); //removing last picture
prependPicture(); //prepending picture
scrollView.scrollTo(pictureWidth, 0); //I've got to scroll my scroller to the center

Последняя строка не работает. HorizontalScrollView показывает первое изображение и не прокручивается к центру изображения. Что я не прав?

И, кстати, может быть, есть еще более интересное решение для моей галереи? Я хочу изменить только одну картинку на один свиток.

0 ответов

Другие вопросы по тегам