0

getLocalVisibleRect() を呼び出していますが、すべて 0 が返され、他の質問からその理由を知ることができました:

「getLocalVisibleRect を使用する前に、Android がレイアウトの設定を完了するまで待つ必要があります。OnCreate で呼び出すと、機能しません」 .

私の質問は、レイアウトが完了したことをどのように知ることができるかです。私は lineralayout を持っていて、その上にいくつかのオブジェクトを描画しようとしています。onclickリスナーを定義したくありません。レイアウト設定が終わったらすぐにアイテムを描画したい。

4

1 に答える 1

1

私の質問は、レイアウトが完了したことをどのように知ることができるかです

ViewTreeObserverをチェックしてください。

すべてのビューには 1 つのビューがあり、描画が完了したときまたはレイアウトが完了したときに呼び出される一連のコールバック インターフェイスがあります ( ViewTreeObserver.OnGlobalLayoutListenerを参照) 。

このようなもの:

ViewTreeObserver vto = myView.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
     void onGlobalLayout() {
       //your callback code
     }
});
于 2013-03-18T21:36:51.900 に答える