2011-01-31 17 views
0

アンドロイドでビューの位置を見つけるにはどうすればよいですか?アンドロイドでビューの場所を見つける方法

私が使用した位置を得るにはview.getLeft()view.getRight(),view.getTop()およびview.getBottm()です。しかし、これらのメソッドは0(ゼロ)を返しています。私はsetContentView()メソッドを呼び出した後、これらのメソッドを使用しました。

ビューの位置を取得するコードを知っている人は、私を助けてください。

答えて

0

これは2.2に私の仕事:

custRegScrollView.smoothScrollTo(0, activity.findViewById(labelId) 
      .getTop() - (viewHeight/2) + offset); 

を、あなたが探しているコードのビットは次のとおりです。

int viewPos = activity.findViewById(R.id.myView).getTop(); 

これは、ビューの「長方形」に以下の点を返す必要があります

>______ 
    | | 
    | | 
    |____| 

つまり、ビューの上部のY(垂直)座標です。

これは、使用しているレイアウトの種類に基づいていることに注意してください。上記のように、これはScrollViewでテストされました。

希望すると便利です。

+0

動作しません。 – anticafe

+0

特に動作しないのは何ですか?コードをステップ実行し、メソッドが適切な値を返すかどうか確認しましたか?それは例外を投げていますか? – Codeman

0

getLeft()getTop()などはどこに電話しましたか?ビューの位置はonMeasure()が呼び出されるまで設定されていないので、それらのメソッドはそれまで0を返します。 onCreate()onMeasure()より前に呼び出されますので、getLeft()を呼び出すとonCreate()ではあまり役に立ちません。コードをonMeasure()またはonResume()に移動することをお勧めします。ただし、onMeasure()を上書きする場合は、通常複数回呼び出されることに注意してください。

関連する問題