9

ボタンのクリックに応答して ImageView (または他のビュー) で getLocationOnScreen() を呼び出すと、正しい値が得られます。

しかし、Activity::onCreate() から getLocationOnScreen() を呼び出すと、[0, 0] しか取得できません。どうすればこれを修正できますか?

すべての計算を行うには onCreate() は早すぎますか? アニメーションを開始するために後でフックするより良い場所はありますか?

4

1 に答える 1

26

getLocationOnScreen()をチェックインするには時期尚早onCreate()です。より適切な場所は、ビュー レベル (カスタム ビューを使用している場合) で、 ですonLayout()。ここでのみ、ビューのサイズと位置が計算されます。カスタム ビューを作成していない場合は、onWindowFocusChanged()(アクティビティにフォーカスがある状態で) のアクティビティ レベルで取得できます。

于 2012-11-06T03:51:00.380 に答える