Почему HorizontalScrollView не прокручивается в HTCDesire 2.2, а только на симуляторе? - PullRequest
1 голос
/ 01 марта 2011

Я использую HorizentalScrollView в представлении. Я добавляю TextView во время выполнения. Я пользуюсь horView.smoothScrollTo(x,y); Работает отлично для симулятора. Но это не прокручивает на HTCDesire 2.2? любая идея? вот мой код.

horView.smoothScrollTo(num, 0);


<HorizontalScrollView
    android:id="@+id/cate_head"
    android:scrollbars="none"
    android:foregroundGravity="fill_horizontal"
    android:layout_width="fill_parent"
    android:paddingTop="6dip"
    android:background="@drawable/slider_background"
    android:focusable="true"
    android:layout_height="wrap_content">
    <LinearLayout
        android:id="@+id/cate_head_list"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:gravity="center_horizontal"
        android:orientation="horizontal"
        android:layout_marginLeft="10dip"
        android:layout_marginRight="10dip">
    </LinearLayout>
</HorizontalScrollView>

Ответы [ 2 ]

1 голос
/ 25 мая 2012

Вы можете использовать View.post, чтобы избежать зависимости от времени.

horView.post(new Runnable() {
    public void run() {
        horView.smoothScrollTo((scrollAmount), 0);          
    }
});

Это выполняется сразу после того, как представление было прикреплено к экрану.

1 голос
/ 02 марта 2011

В конце концов я нашел решение.Я вызывал smoothScrollTo (x, y) в конце создания. (Где еще я могу это указать?) Проблема заключалась в том, что во время инициализации не было найдено размера или длины (но это не должно быть, потому чтоположить все данные в этом).Так что вызывайте postDealy () с задержкой в ​​50 сек.Меня устраивает.Вот что.Я положил его в конце onCreate ();Пусть кто-нибудь еще найдет раствор для теста ...

new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {
            horView.smoothScrollTo((scrollAmount), 0);
        }
    }, 50);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...