Android: как заставить макет ScrollView, а затем прокрутить до точки?

1

У меня есть ScrollView, в который я добавляю несколько пользовательских представлений. После добавления пользовательских представлений мне хотелось бы прокрутить список до определенного. Но сразу после добавления пользовательских представлений ScrollView не был изменен, поэтому я не могу прокручивать. Любая идея, как я могу заставить это изменить размер?

for(int i = 0, i < numberOfViews, i++)
{
  scrollView.addView(new MyView(...));
}

//tried this, doesn't seem to be helpful 
scrollView.requestLayout();

//at this point scrollView dimensions are 0,0,0,0 
scrollView.scrollTo(5, 200);
  • 0
    Почему бы не использовать просмотр списка?
Теги:
scrollview

2 ответа

0

Элегантное решение состоит в том, чтобы спланировать прокрутку и сделать это на следующем onLayout(). Пример кода здесь:

qaru.site/questions/51881/...

0

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

((ScrollView) findViewById(R.id.yourId)).post(new Runnable() {
         public void run() {
             ((ScrollView) findViewById(R.id.yourId)).fullScroll(View.FOCUS_DOWN);
         }
 });

Он будет обновляться позже, поэтому ваше представление сделано:)

  • 0
    Спасибо, я попробовал это. Даже если я использую метод post (...), высота ScrollView по-прежнему равна 0 при выполнении метода fullScroll (...) (я могу определить это путем отладки и размещения точки останова в методе fullScroll (...)) ,

Ещё вопросы

Сообщество Overcoder
Наверх
Меню