У меня есть активность, которая показывает howizontalscrollview с горизонтальным длинным представлением изображения.
Мне нужно, чтобы при запуске этого действия, horizontalscrollview должен прокручиваться до центра его области, а не до начала.
Я ищу в google и здесь, и я не могу найти способ.
Это мой горизонтальный вид прокрутки:
HorizontalScrollView wvScroll = new HorizontalScrollView(this); wvScroll.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); iv.setImageBitmap(Util.getRemoteImage("http://mywebsite.com/90.gif")); iv.setScaleType(ScaleType.CENTER_CROP); wvScroll.addView(iv); mainLayout.addView(wvScroll);
благодаря
Пытаться:
wvScroll.scrollTo(offsetX, 0);
Может возникнуть проблема синхронизации, когда смещение будет установлено до создания scrollView. В этом случае используйте postDelayed()
с runnable
который вызывает scrollTo
ДОБАВЛЕНО:
Использовать postDelayed ():
private Handler mHandler = new Handler();
In onCreate do:
mHandler.postDelayed(new Runnable(){ public void run() { wvScroll.scrollTo(offsetX, 0); } }, 1000);
Я не уверен, но, вероятно, вам нужно иметь высоту и ширину ребенка. Smth вот так:
int centerX = wvScroll.getChildAt(0).getWidth()/2; int centerY = wvScroll.getChildAt(0).getHeight()/2; wvScroll.scrollTo(centerX, centerY);