[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 を設定する必要があります。

参考サイト

ITエンジニア募集中!

キュアコード株式会社はITエンジニアを募集しております。少人数の職場なので、上流・下流やサーバー・クライアント対応の垣根なく、あなたの強みを活かしながら いろいろなことにチャレンジ可能です。エンジニアとしての未経験の方、経験が少ない方も歓迎しています。

下記よりITエンジニア募集の採用情報をご覧いただけます。


コメントを残す

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

CAPTCHA