こんばんは。ざわです。
今回もXAML ネタです。よろしくお願いします。
これまでのXAMLメモはこちらになります。
動作環境
・Windows10
・Microsoft Visual Studio Community 2022 Preview 7.0
・Xamarin.Forms
今回試してみたこと
少し前にマテリアルデザインの概念について学ぶ機会がありました。
そこで、今回はXamarin Formsでマテリアルデザインを試してみようと思います。
実装の流れとしては
- 「Xamarin.Forms.Visual.Material」NuGetパッケージをインストール
- マテリアルビジュアルを初期化
- マテリアルビジュアルを適用
1. 「Xamarin.Forms.Visual.Material」NuGetパッケージをインストール
NuGetで「Xamarin.Forms.Visual.Material」で検索し、
iOS および Android プラットフォームのプロジェクトにインストールします。
2. マテリアルビジュアルを初期化
iOS 、Androidの各プラットフォームのプロジェクトで、Material Visualを初期化します。
iOSの場合
AppDelegate.cs で、
Xamarin.Forms.Forms.Initメソッドの後に
Xamarin.Forms.FormsMaterial.Initメソッドを呼び出します。
global::Xamarin.Forms.Forms.Init();global::Xamarin.Forms.FormsMaterial.Init();
Androidの場合
MainActivity.cs で、
Xamarin.Forms.Forms.Initメソッドの後に
Xamarin.Forms.FormsMaterial.Initメソッドを呼び出します。
global::Xamarin.Forms.Forms.Init(this, savedInstanceState);global::Xamarin.Forms.FormsMaterial.Init(this, savedInstanceState);
3. マテリアルビジュアルを適用
ここまで準備できたら、XAML側にマテリアルを適用します。
以下のコントロールが、マテリアルビジュアルがサポートされているコントロールなので、
この中のいくつかを使って試してみます。
・ActivityIndicator
・Button
・CheckBox
・DatePicker
・Editor
・Entry
・Frame
・Picker
・ProgressBar
・Slider
・Stepper
・TimePicker
今回は「Button」「Entry」「DatePicker」「TimePicker」「Editor」「Slider」を使いました。
ContentPage内のコントロールすべてに対して適用するため、
ContentPageに Visual="Material" を設定します。(特定のコントロールのみ設定することもできます)
マテリアルビジュアルを適用しない場合は Visual="Default" と設定します。
<?xml version="1.0" encoding="utf-8" ?><ContentPage xmlns="http://xamarin.com/schemas/2014/forms"xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"x:Class="App4.MainPage"Visual="Material"><StackLayout BackgroundColor="#90caf9"><Label Text="タイトル:" Margin="20" /><Entry Placeholder="タイトル" x:Name="title" Margin="30, 0, 30, 10"/><Label Text="日付:" Margin="20" /><DatePicker x:Name="datePicker"Format="D"Margin="30, 0, 30, 10" /><Label Text="時刻:" Margin="20" /><TimePicker x:Name="timePicker"Time="11:00:00"Format="T"Margin="30, 0, 30, 10" /><Label Text="メモ:" Margin="20" /><Editor x:Name="editor" Margin="30, 0, 30, 10" HeightRequest="80" /><Slider VerticalOptions="Fill" Margin="20" Maximum="360"/><Button Text="登録" Margin="30, 0, 30, 10"/></StackLayout></ContentPage>
実行結果
左側が Material適用した画面で、右側が適用していない画面です。
今回はAndroidでの確認のみで、iOSはまだ確認できていないのですが、、、
Materialを適用した場合は、iOS と Android でほぼ同じ外観になっているはずです。
これからはマテリアルデザイン、使っていきたいと思います。
それではまた!
0 件のコメント:
コメントを投稿