4
私はHorizontalScrollViewにTextViewsがほとんどありません。各TextViewには異なる長さのテキストが含まれている場合があります。AndroidはHorizontalScrollViewの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)
とを必要になります画面の中心を取得します。
ことは、この例では
HorizontalScrollView
である(親ビューへの相対座標を返しますが、あなたは正しい道に私を導いたはずですgetLeft()
とgetTop()
を:) ありがとうございました! 私はそれをどのように解決したのかに関する私の質問をコードで更新しました。 –ああ、私はあなたが中心にスクロールしたかったことを理解していない。 :)うまくいけばうれしいよ。 – kcoppock