[Xamarin] Android MaterialComponents の TextInputEditText を動的に生成する


Android MaterialComponents の TextInputEditText を使う時の注意点では静的に生成する方法を書きました。

今回は Xamarin.Android で動的に生成する方法です。Xamarin なので C# です。

基本的な考え方

静的な方法で XML に書くのと同様に、TextInputLayout を生成し、その中に TextInputEditText を配置します。

ここまででマテリアルデザインの通常のテキストエディットは表示できます。

スタイルを使用する場合

静的な方法でも述べましたが TextInputEditText には 3つのスタイルがあります。

TextInputLayout の種類

動的に生成する場合、コードはどうすればよいでしょうか。

まずは ContextThemeWrapper を使用します。ContextThemeWrapper とはある Context の Theme を上書きした Context を新し作成することができるものです。これでテーマを条件によって置き換えたりすることができます。

ところが、これだけだと Default のテーマが MaterialComponents の FilledBox にはなりますが、OutlinedBox にはなりません。何が足りないのでしょうか。

BoxBackgroundMode を設定

結論から言うと TextInputLayout.BoxBackgroundMode を設定する必要があります。

参考サイト


コメントを残す

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

CAPTCHA


  • キュア子の紹介

人気記事ランキング