У меня есть 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);
Элегантное решение состоит в том, чтобы спланировать прокрутку и сделать это на следующем onLayout(). Пример кода здесь:
Я не совсем уверен, что вы пытаетесь сделать, но я хотел прокрутить весь путь вниз и не мог просто сделать это: мне нужно было сделать это следующим образом:
((ScrollView) findViewById(R.id.yourId)).post(new Runnable() {
public void run() {
((ScrollView) findViewById(R.id.yourId)).fullScroll(View.FOCUS_DOWN);
}
});
Он будет обновляться позже, поэтому ваше представление сделано:)