0

У меня есть scrollView в моем фрагменте ViewPager. Я хочу установить начальную позицию scrollView (0,100).Как переопределить начальную позицию Android ScrollView?

Я попытался установить scrollView.scrollTo(0,100) в onCreateView(). Это не сработало.

Затем я попробовал то же самое в Handler, и это сработало, но оно прокручивается до (0,100) после (0,0), вызывая небольшой рывок в scrollView, что плохо для пользователя.

Есть ли способ сделать scrollview прямо прокруткой до (0,100) вместо (0,0)? или Есть ли какой-либо метод, доступный в scrollView для обнаружения начального события прокрутки?

P.S: Я видел вопрос here, который также тот же, что и мой, но принятый ответ не работает для меня.

Любая помощь будет оценена по достоинству. Thanks

+0

Поскольку ваш scrollview находится внутри фрагмента, вы, вероятно, вызываете метод в неправильном месте, так как этот метод должен работать. Не может быть большой помощи без реального примера того, что вы делаете. – Ricardo

+0

Вы когда-нибудь находили решение? У меня такая же проблема –

ответ

0

Вместо scrollTo вы можете использовать requestFocus для первого ребенка внутренней компоновки прокрутки.

Пример:

<ScrollView> 

    <LinearLayout> 

     <TextView 
      android:focusable="true" 
      android:focusableInTouchMode="true" 
      android:tag="ScrollTopTag" /> 
     //***rest of your layout***// 
    </LinearLayout> 

</ScrollView> 

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

Смотреть вид = findViewByTag ("ScrollTopTag); view.requestFocus();

+0

Пробовал, но не работал – vijay

+0

Не могли бы вы прокомментировать ваш измененный макет здесь. – WritingForAnroid

+0

Hi Спасибо за ваш ответ. 'View view1 = scrollView.getChildAt (scrollView.getChildCount() - 1); view1.setFocusable (true); view1.setFocusableInTouchMode (true); view1.requestFocus(); ' Я считаю, что это то, что вы сказали несколько, но не сработало для меня. Как я уже говорил, scrollTo отлично работает в Handler, и он прокручивается до нужной позиции. Таким образом, нет проблемы с методом scrollTo(). Проблема, если вы вызываете scrollTo (0,100), она сначала прокручивается до (0,0), затем только доходит до (0,100). – vijay

0

Похоже, что вы раздуваете изображения внутри адаптера, не перерабатывая их. Это объясняет изменчивое время загрузки. Кроме этого, из примера попробуйте отложить его еще больше. В примере он использует 250 мс, но если ваш список это не сделало загрузку, чем ее не будет прокручивать нигде, так как она еще не заполнена. Я бы начал, но сначала увеличил продолжительность примерно до 2000 мс, чтобы увидеть, работает ли он. Если это сработает, я вернусь к классу адаптеров и убедитесь, что каждый вид перерабатывается, а не повторно заново.

+0

Hi Feddy, scrollTo() работает просто отлично – vijay

+0

Но вопрос в том, что он прокручивается в желаемое положение только после начального положения (0,0). И я хочу переопределить это начальное положение. Это вызывает небольшой рывок. Я не реализовал часть утилизации. Я только переосмысливаю взгляды – vijay