現在作成したもの
Xamarin.FormsでTabbedPageを使用して複数ページ用意しています。
また、カスタムビューを作成しています。
C#
1public class MyView :Frame 2 { 3 public MyView(int id, string msg) 4 { 5 var label = new Label 6 { 7 Text = msg, 8 HorizontalOptions = LayoutOptions.Center, 9 VerticalOptions = LayoutOptions.Center, 10 }; 11 12 var tgr = new TapGestureRecognizer(); 13 tgr.Tapped += delegate { 14 //別のViewを出す 15 }; 16 17 GestureRecognizers.Add(tgr); 18 19 HasShadow = true; 20 Content = label; 21 } 22 } 23 24 public class MyPage : ContentPage 25 { 26 public MyPage() 27 { 28 var stack = new StackLayout 29 { 30 HorizontalOptions = LayoutOptions.FillAndExpand, 31 VerticalOptions = LayoutOptions.FillAndExpand, 32 Padding = 10, 33 Spacing = 10, 34 }; 35 36 var scroll = new ScrollView 37 { 38 Content = stack, 39 }; 40 41 for (int i = 1; i <= 5; i++) 42 { 43 stack.Children.Add(new MyView(i, $"追加したアイテム/{i}")); 44 } 45 46 Content = scroll; 47 } 48 }
やりたいこと
このMyPageや単独でMyViewが1つあるページがTabbedPageで複数あったとして、MyViewをタップした時に詳細ページを現在のページの上に下からスライドして出したいです。
現在表示しているものの上に重ねて表示しようとすると、AbsoluteLayoutなどを使用するイメージがありますが、やはりその方法しかないでしょうか?
そうなると、呼び出しもとのPageを渡すなり、MyView側にイベントを用意して呼び出し側で詳細ページを表示する必要があると考えました。
それでは効率が悪いので、できたらMyView側で定義して、呼び出し側は上記のコードのようにViewを表示するだけにしたいのですが、どのような方法が考えられますか?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。