View
独自の可視性を決定するための表示ロジックを持つカスタムを作成したいと思います。そのロジックを封じ込めて簡単に再利用できるようにするために、View
サブクラスを作成してオーバーライドし、可視性が変化する可能性のあるイベントが発生しgetVisibility()
たときに無効にすることを計画していました...オーバーライドではなく、呼び出しによって変更されました。この質問に対するRomainGuyの回答を参照してください。View
View
setVisibility()
getVisibility()
通常のView
ライフサイクル/レンダリングプロセスの一部として呼び出され、オーバーライドするのに理想的な特定のメソッドがありますsetVisibilty()
か?私はすでに電話をかけているのでinvalidate()
、それをオーバーライドして電話をかけることができますsetVisibility()
。しかし、それはそれにとって理想的な場所ですか?View
の属性を設定するinvalidate()
と、ベストプラクティスに反するようです。
明確化:View
Andrは、カスタムの可視性を変更する可能性のある多くのことがあり、それらのシナリオはカスタムビューの使用法に非常に固有で あると指摘しました。それは非常に真実です。しかし、この質問は、外観を更新するようにトリガーinvalidate()
する方法に関するものではありません-ビューの外観が変更されたことをAndroidに伝える標準的な方法のようですよね?代わりに、これは、カスタムが無効になった後の呼び出し先に関するベストプラクティスの質問です。たとえば、プロセスの間違った部分に変更を加えたくありません。誰かがリンクを持っているなら、私はAndroidのUIレンダリングプロセスの図を見たいです。setVisibility()
View
onMeasure()