shuhelohelo’s blog

Xamarin.Forms多めです.

2020-06-01から1ヶ月間の記事一覧

CollectionViewのネスト

CollectionViewをネストすると,以下のような表示になる. <CollectionView ItemsSource="{Binding AnimeInfos}"> <CollectionView.ItemsLayout> <LinearItemsLayout ItemSpacing="10" Orientation="Vertical" /> </CollectionView.ItemsLayout> <CollectionView.ItemTemplate> <DataTemplate> <Grid> <Frame BackgroundColor="LightPink"> </frame></grid></datatemplate></collectionview.itemtemplate></collectionview>

コンソールアプリでASP.NET CoreのDIの仕組み(ServiceProvider)を使う(2)

当然HttpClientもDIすることができる. 前回のMicrosoft.Extensions.DependencyInjectionに加えてMicrosoft.Extensions.Httpをインストールする. using ConsoleAspNetCoreDI.Services; using Microsoft.Extensions.DependencyInjection; using Microsoft.Exte…

コンソールアプリでASP.NET CoreのDIの仕組み(ServiceProvider)を使う(1)

2020/07/11追記 かずきさんのこちらの記事がとてもわかりやすい. qiita.com AddScopedとAddTransientの違い AddSingletonはSingleton. AddTransientはGetServiceするたびにインスタンスが作られる. じゃあAddScopedはというと,スコープが異なると別のインス…

Xamarin.Formsでファイルの読み書き

Xamarin.EssentialsにFileSystemというクラスが用意されていて,それを使うことでプラットフォームごとのファイル保存先のフォルダの位置を取得したり,そのフォルダの中の指定したファイルのstreamを取得したりできる. FileSystem.OpenAppPackageFileAsyncは,…

Nugetパッケージのキャッシュをクリアする

2020.07.30追記 Visual StudioのTool > optionsからキャッシュをクリアできるとのこと. qiita.com このClear All Nuget Cachesというボタン. 本文 rksoftware.hatenablog.com docs.microsoft.com ふと気づくとローカルストレージの容量が心もとなくなってい…

Xamarin.Forms: Androidのステータスバーの色を変更する

ステータスバーの色はナビゲーションバーの色や,アプリを代表する色に揃えると見栄えがよくなる. montemagno.com こちらの記事のとおりにすればAndroidのステータスバーの色と文字の色を変更することができる. ただ,記事の中ではActivityの取得にPlugin.Curr…

Xamarin.Forms.ColorとSystem.Drawing.Color

docs.microsoft.com 変換 docs.microsoft.com System.Drawing.ColorとXamarin.Forms.Colorの間で相互に変換する場合は以下のように,変換先の型の変数に代入するだけでよい. Xamarin.Forms.Color xfColor = Xamarin.Forms.Color.FromRgb(0, 72, 255); System.…

Xamarin.FormsのCollectionViewでグルーピング表示する

docs.microsoft.com リスト表示するときに,何かしらの項目でグループ化して表示したいときがあります. 例えば,年代であったり,名字であったり,好きなゲームのジャンルであったり,動物の種類であったりといった具合です. CollectionViewにはデータをグルーピ…

Xamarin.FormsでSystem.Text.JSONでJSONファイルからデシリアライズするときのメモ

https://codeburst.io/working-with-json-in-net-core-3-2fd1236126c1codeburst.io ここでは予めデシリアライズ先の型を用意して,Embedded resourceに指定したJSONファイルから読み込んだデータをデシリアライズする手順を示す. System.Text.Jsonをインスト…

テスト,開発用ダミーデータの入手先(住所録)

日本語 qiita.com 英語 mockaroo.com

Xamarin.FormsでCollectionViewを指定したItemまでスクロールする.

docs.microsoft.com これはグルーピングしたCollectionViewのスクロールの場合. private async void FilterButton_Tapped(object sender, EventArgs e) { var choices = _viewModel.GroupedSessions.Select(g => $"{g.TrackID} : {g.TrackName}"); string ch…

Xamarin.FormsのShellでNavigationBar(ToolBar?)にButtonを配置する

ContentPage内で指定するので,Shellに限ったことではないと思う. 以下のようにすると,上部のNavbarにボタンが追加される. <ContentPage.ToolbarItems> <ToolbarItem Text="Add" Clicked="AddItem_Clicked" /> </ContentPage.ToolbarItems> 複数も可. <ContentPage.ToolbarItems> <ToolbarItem Text="Add" /> <ToolbarItem Text="Hello" /> </ContentPage.ToolbarItems> こんな感…

Xamarin.Forms ShellでFlyoutで選択された項目のテキストカラーを変更する

選択時の背景色を変更する方法はこちらの記事に書きました. shuhelohelo.hatenablog.com 背景色を変更しましたが,文字の色によっては見えにくくなることもあります. このため,選択時の背景色に合わせて文字色も変更されるようにします. 選択時の色のときは,F…

Xamarin.Forms: ShellのFlyout(メニュー)の選択時の背景色を変更する

各項目が選択されたときの色(Selcted Color)を変更する方法はこちら↓ forums.xamarin.com ShellにはItemTemplateがあって,ここで指定したDataTemplateはFlyoutの各アイテムの見た目の定義になる. これを定義しなければデフォルトのスタイルが使用される. <Shell.ItemTemplate> <DataTemplate> <Grid Style="{StaticResource FloutItemStyle}"> <Grid.ColumnDefinitions> <ColumnDefinition Width="0.2*" /></columndefinition></grid.columndefinitions></grid></datatemplate></shell.itemtemplate>…

Xamarin.Forms ShellのFlyoutItem,FlyoutHeader,FlyoutMenuのスタイル(Style)のテンプレート(template)

docs.microsoft.com github.com 公式のサンプルのとおり,各テンプレートは以下のとおり FlyoutHeaderのテンプレート <Shell.FlyoutHeaderTemplate> <DataTemplate> <Grid BackgroundColor="Black" HeightRequest="200"> </grid></datatemplate></shell.flyoutheadertemplate>

Xamarin.FormsのShellでページごとにNavigationBarやTabBarの色を変える.

全部↓の公式のサンプルを見たら良かった. github.com 以下のようにShellContent毎にStyleを指定している. <FlyoutItem Route="animals" Title="Animals" FlyoutDisplayOptions="AsMultipleItems"> <Tab Title="Domestic" Route="domestic" Icon="paw.png"> </tab></flyoutitem>

Twitterアプリを起動してTweet入力画面を表示する

Xamarin.Essentials.Launcherを使用する. コードとしてはこれでよい string text =System.Web.HttpUtility.UrlEncode( $"\n#decode20 #{sessionId}"); var canOpen = await Xamarin.Essentials.Launcher.CanOpenAsync("twitter://post"); if (canOpen) { awa…

Xamarin.FormsのGridのRow/Column Definitionをインラインで書けるようになる予定

blog.verslu.is Xamarin.Forms 4.7 pre-1以降で使えるとのことなので使ってみた. まずは現時点で最新のXamarin.Forms 4.7 pre-4をインストールする. Nugetパッケージマネージャからインストール(アップデート)をする. プレビュー版を検索候補に出す場合は,検…

MonkeyCacheを使ったデータのキャッシュ Xamarin.Formsで

xamgirl.com 公式↓ montemagno.com MonkeyCacheはウェブから取得したデータをキャッシュして,必要に応じて利用することを助けるライブラリです. データのキャッシュとは,オンライン時にWebAPIなどから取得したデータをローカルに保持しておき,オフライン時に…

Xamarin.Forms : RefreshViewのぐるぐるを自然なアニメーションで消すためには

Xamarin.FormsにはRefreshViewというコントロールがあって,これは画面を下に引っ張ってデータを更新するPull-To-Refreshという動作を提供するものです. とても便利でIsRefreshingというプロパティを持っていて,このtrue,falseを切り替えることでデータ更新中…

RefreshViewはリストだけじゃなくてなんにでも使える

タイトルのとおり,RefreshViewで囲んだコントロールはPull-To-Refresh(下に引っ張って更新)できるようになる. Imageは試した. 画像を下に引っ張ると別の画像に変わる,といったことができる. <RefreshView Command="{Binding AvatarRefreshCommand}" IsRefreshing="{Binding IsAvatarRefreshing}"> </refreshview>

HttpClientを使って受け取ったJSON形式のレスポンスをデシリアライズする方法

方法としてはSystem.Text.Jsonを使ってJSON文字列をデシリアライズするか,System.Net.Http.Jsonを使ってレスポンスから直接オブジェクトを取得するか,がある. System.Text.Jsonを利用するためにはNugetからインストールします. System.Net.Http.Jsonを利用す…

Xamarin.FormsでASP.NET Coreなappsettings.jsonから値を取得する

Xamarin.FormsでASP.NET CoreのDIの仕組みを使うことについては以下の記事に書きました. shuhelohelo.hatenablog.com これをベースとします. 今回は基本的なことに戻って,appsettings.jsonファイルに記述した値を取得する方法についてです. 以下のような内容…

Xamarin.FormsでASP.NET CoreなDI(Dependency Injection) (5) HttpClient

Asp.Net CoreでおなじみのAddHttpClientメソッドを使ってHttpClientを安全に正しく利用することができます. HttpClientの使用上の注意と使い方については以下の公式のガイドに詳しく書いてあります. docs.microsoft.com ここで説明されているとおり,HttpClie…

Xamarin.FormsでASP.NET CoreなDI(Dependency Injection) (4)

NavigationPageを使ったページ遷移をやってみようと思います. 変更するところはまず,Appクラスのコンストラクタです. 以下のようにNavigationPageをはさみます. public App(MainPage mainPage) { InitializeComponent(); MainPage = new NavigationPage(main…

Xamarin.FormsでASP.NET CoreなDI(Dependency Injection) (3)

これまで,Xamarin.FormsでAsp.Net CoreのDIの仕組みを利用する方法を書いてきました. shuhelohelo.hatenablog.com shuhelohelo.hatenablog.com 最後にまだDIできる余地が残されています. それがApp.xaml.csのAppクラスです. 現時点でAppクラスのコンストラク…

Xamarin.FormsでASP.NET CoreなDI(Dependency Injection) (2)

montemagno.com こちらの記事を試してみた2回目. 1回目はこちら. shuhelohelo.hatenablog.com 今回はプラットフォーム固有の機能をDIする場合についてです. プラットフォーム固有の機能(例えば通知機能)を使う場合,共有プロジェクト側でインターフェースを用…

Xamarin.Formsでの通知の表示方法

これは各プラットフォームごとに実装して,それをインターフェース経由で共通プロジェクトから呼び出す. 公式ドキュメント+チュートリアル. docs.microsoft.com これをやった. ソースコードはこちら. github.com 以下のように表示される. 沢山通知した場合は,…

Xamarin.FormsでASP.NET CoreなDI(Dependency Injection) (1)

montemagno.com こ,これは...! Xamarin.Forms以外のアプリケーションでも同様に使えそう. Microsoft.Extensions.Hostingをインストールする Nugetから. すべてのプロジェクトに. ビルトインのLoggingフレームワークと,jsonファイル形式(appsettings.json)の…

Xamarin.FormsでMvvmHelpersを使ってみる

channel9.msdn.com montemagno.com github.com MVVMフレームワーク色々 MVVMパターンでのアプリケーション開発をサポートするライブラリやフレームワークは色々あります. Prism ReactiveProperty MvvmCross ReactiveUI MVVMLite MVVMHelpers 他にもあると思…