LinearLayout内にimageViewがあり、そのLinearLayoutでinvalidateを呼び出すと、電話がスリープして再びウェイクアップするまで無効になりません。
とにかくLinearLayoutをすぐに無効にする方法はありますか?
無効化機能に関するAndroidのドキュメントから
ビュー全体を無効にします。ビューが表示されている場合、将来のある時点で onDraw(android.graphics.Canvas) が呼び出されます。これは、UI スレッドから呼び出す必要があります。非 UI スレッドから呼び出すには、postInvalidate() を呼び出します。
これは 3 年以上前のものなので、返信は期待していませんLinearLayout
が、 への呼び出しがないために無効になっていると思わない場合はonDraw()
、https://stackoverflow.com/a/をご覧ください。 17595671/852795 :
デフォルトでは、すべての ViewGroup サブクラスはメソッドを呼び出しません。リンク
onDraw
を呼び出して有効にする必要がありますsetWillNotDraw(false)
ドキュメントから:
デフォルトでは、このフラグは View に設定されていませんが、ViewGroup などの一部の View サブクラスに設定できます。通常、オーバーライドする場合は、
onDraw(android.graphics.Canvas)
このフラグをクリアする必要があります。
setWillNotDraw(false);
LinearLayout に追加してみてください。