2011-08-09 52 views
4

我的Horizo​​ntalScrollView只有很少的TextView。每個TextView可能包含不同長度的文本。Android在Horizo​​ntalScrollView中計算scrollTo的位置

我應該如何計算正確的偏移量來滾動到使用「scrollTo(x,y)」?

滾動工作,但與預期不同。 我已經嘗試過各種各樣的東西(getLocationOnScreen(),getMeasuredWidth(),每個子元素上的getWidth()以及他們將它們添加到togetehr),但我仍然無法得到我喜歡的結果。視圖滾動有點太遠或不夠。

解決方案

當HSV具有不同寬度的多個元素,你可以在他們每個人的中心是這樣的:

for (TextView el : requiresFocus) { 
    if (el.getText().equals(requiresFocus)) { 
     offsetX = ((el.getLeft() + el.getRight())/2) - (myHSV.this.getWidth()/2); 
     scrollTo(offsetX, 0); 
     break; 
    } 
} 

((el.getLeft() + el.getRight())/2)你會得到元素的中心和(myHSV.this.getWidth()/2)你會獲得屏幕的中心。

回答

3

試試這個:

int x, y; 
x = myTextView.getLeft(); 
y = myTextView.getTop(); 

myHsv.scrollTo(x, y); 

getLeft()getTop()應該返回相對於父視圖的座標(即,在這種情況下,HorizontalScrollView

+0

不完全是,但你使我在正確的道路上。 :) 謝謝! 用代碼更新了我的問題,我如何解決它。 –

+0

啊我看到了,沒有意識到你想滾動到中心。 :) 真高興你做到了。 – kcoppock

相關問題