閉じる

inflateしたレイアウトにテーマが適用されない

Dark系のテーマを使っていると発覚しないけど、Light系のテーマを設定したとたん明るい背景に明るいテキストが表示されて問題があることがわかる。
結論から言えば LayoutInflaterが参照している Contextが期待した Contextでは無いと言うこと…なんだと思う。
呼び出し側から LayoutInflaterが渡されているときは良いのだけど、そうでない場合どうにかして参照可能な Contextを探して LayoutInflater.from等で得るけど、どこから探してくるのかが問題。
親のビューが存在する場合、親ビューの getContext()を呼び出してそこから LayoutInflater.fromを呼ぶのが正解らしい。

コメントを残す

メールアドレスが公開されることはありません。必須項目には印がついています *

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)