Intereting Posts
Принудительное действие Бар показать поиск Не удалось создать Android-приложение (см. Как ActionBarSherlock & ViewPagerTabs) с Ant Получение 0.0 для широты и долготы при отображении текущего местоположения на карте Как я могу генерировать случайное число в определенном диапазоне в Android? Отметьте выбранным пользователем, как указано в FriendPicker (Facebook SDK для Android) Почему предупреждение: невозможно найти дополнительную библиотеку: org.apache.http.legacy происходит? FloatingActionButton, квадратная кнопка ниже уровня API 17 Android: Отмените задачу Async Альтернатива Proguard для запутывания приложений для Android с использованием предварительно скомпилированных сторонних библиотек Android: преобразование битмапа во входной поток Можно ли изменить значение строки, добавленной в res / strings.xml на Android, во время выполнения / или кодом? Получить идентификатор для просмотров, которые добавляются динамически Опубликовать данные объекта Json, чтобы получить ответ массива Json с помощью volley in android Предотвращение закрытия некоторых пользователей Android Как получить свойства устройства Android

Как установить начальную позицию ScrollView?

Я пытаюсь установить начальную позицию прокрутки View, но не нашел способ. У кого-нибудь есть идеи? Кроме того, у меня есть фрагмент GoogleMaps в виде дочерних элементов прокрутки.

Благодаря,

Райан

Solutions Collecting From Web of "Как установить начальную позицию ScrollView?"

Да, это возможно:

ScrollView.scrollTo(int x, int y); ScrollView.smoothScrollTo(int x, int y); ScrollView.smoothScrollBy(int x, int y); 

Могут быть использованы для этого. Параметры x и y – это координаты для прокрутки по горизонтальной и вертикальной оси.

Пример в коде:

  @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.your_layout); ScrollView sv = (ScrollView) findViewById(R.id.scrollView); sv.scrollTo(0, 100); } 

В этом примере после запуска ScrollView будет прокручиваться на 100 пикселей.

Вы также можете попытаться отложить процесс прокрутки:

 final ScrollView sv = (ScrollView) findViewById(R.id.scrollView); Handler h = new Handler(); h.postDelayed(new Runnable() { @Override public void run() { sv.scrollTo(0, 100); } }, 250); // 250 ms delay 

Принятый ответ не работает для меня. Нет прямого способа установить начальную позицию прокрутки.

Однако вы можете установить начальную позицию перед рисованием прокрутки, например:

 rootView.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() { @Override public boolean onPreDraw() { scrollView.getViewTreeObserver().removeOnPreDrawListener(this); scrollView.setScrollY(100); return false; } }); 

Вы также можете использовать scrollView.setScrollY(100) внутри Handler , но при прокрутке это будет рывком.