0

SurfaceView から継承したカスタム ビューがあり、同じ RelativeLayout に EditText があります (カスタム ビューと EditText はどちらもレイアウトの xml の兄弟です)。EditTextを見えるようにすると、このように

setVisibility(View.VISIBLE);

カスタム ビューは onDraw(Canvas c) メソッドの連続呼び出しを受け取ります。理由を知っている人はいますか?invalidate() を明示的に呼び出したことはありません。

4

1 に答える 1

0

ここには何も問題はありません。これは通常の動作です。onDraw()Android は、表示する必要がある変更があると感じるたびにアクティビティを再描画するため、何度も呼び出されます。アクティビティを再描画するタイミングと理由を決定する高度な内部アルゴリズムが多数あります。Android が処理してくれるので、心配する必要はありません。

アクティビティが再描画されると、そのすべての子も再描画されます。これは、カスタム ビューではなく、すべてのビューで発生します。コードに問題はありませんのでご安心ください。

内部についてもっと知りたいですか?View クラスのソース コードをチェックしてください。

于 2013-03-22T20:03:49.500 に答える