1

LinearLayout内にimageViewがあり、そのLinearLayoutでinvalidateを呼び出すと、電話がスリープして再びウェイクアップするまで無効になりません。

とにかくLinearLayoutをすぐに無効にする方法はありますか?

4

2 に答える 2

0

無効化機能に関するAndroidのドキュメントから

ビュー全体を無効にします。ビューが表示されている場合、将来のある時点で onDraw(android.graphics.Canvas) が呼び出されます。これは、UI スレッドから呼び出す必要があります。非 UI スレッドから呼び出すには、postInvalidate() を呼び出します。

于 2013-01-27T22:17:50.917 に答える
-1

これは 3 年以上前のものなので、返信は期待していませんLinearLayoutが、 への呼び出しがないために無効になっていると思わない場合はonDraw()https://stackoverflow.com/a/をご覧ください。 17595671/852795 :

デフォルトでは、すべての ViewGroup サブクラスはメソッドを呼び出しません。リンクonDrawを呼び出して有効にする必要がありますsetWillNotDraw(false)

ドキュメントから:

デフォルトでは、このフラグは View に設定されていませんが、ViewGroup などの一部の View サブクラスに設定できます。通常、オーバーライドする場合は、 onDraw(android.graphics.Canvas)このフラグをクリアする必要があります。

setWillNotDraw(false);LinearLayout に追加してみてください。

于 2016-05-20T19:24:59.043 に答える