ヘッダーのボタンを押すと右からスライドする通知コンテンツを追加する必要があります。ヘッダーはボタンが内側にあるボックスビューです。ボタンを押したときに右からスライドするマスター詳細ページ内に通知を追加するには
は、これは私が達成しようとしているものです:
これは私が今持っているものです(ボタンは何もしません):
ヘッダーのボタンを押すと右からスライドする通知コンテンツを追加する必要があります。ヘッダーはボタンが内側にあるボックスビューです。ボタンを押したときに右からスライドするマスター詳細ページ内に通知を追加するには
は、これは私が達成しようとしているものです:
これは私が今持っているものです(ボタンは何もしません):
私はXamarinはないと思います。フォームは2つのマスターページ(引き出し)をサポートしますが、画面内にTranslationX
のWidth
に設定されたビューをページ内に追加してから、ToolbarItem
これを押すと、ビューのX
が0に変換され、もう一度押すとビューが再び画面の幅に変換されます。唯一の欠点は、このビューがAppBarの下にあることです(写真のように、通知パネルがAppBarとStatusBarの前にないことです)。
通知パネル部:
// I think 260 is a good width (but I didn't test), experiment and see
var notificationsPanel = new StackLayout { WidthRequest = 260 };
// Needed because we don't know the Width yet
SizeChanged += (sender, e) =>
{
if(Width > 0)
notificationsPanel.TranslationX = Width;
}
Width
プロパティは、ページの幅である
コードは次のようなものになるだろう。
ToolbarItemパーツ:
if(notificationsPanel.TranslationX > 0)
notificationsPanel.TranslateTo(Width - notificationsPanel.Width);
else
notificationsPanel.TranslateTo(Width); // Here the Width will already be set
ページの内容:
Content = new Grid
{
Children =
{
actualContent,
notificationsPanel
}
}
はそれが役に立てば幸い!
EDIT
簡単にアイデアが通知パネルなしで、あなたのページを作成し、このライブラリを使用することです:ポップアップとしての代わりに、ページ内のビューとしてNotificationsPanelを追加するRg.Plugins.Popupを。
このライブラリのwikiページはWikiです。ポップアップのXAMLページを作成し、クリックしたときにポップアップが表示されているかどうかをチェックする単純なメソッドを呼び出す「ルート」ページにToolbarItemを追加できます。そうでない場合は追加します。トグルのような方法)。このような何か:
if (PopupNavigation.PopupStack.Count > 0)
PopupNavigation.PopAsync();
else
PopupNavigation.PushAsync(new NotificationsPanel());
あなたがToolbarItemを追加する方法がわからない場合、それはこのようなものです:あなたがXamarin.Formsの画像についての詳細をお知りになりたい場合は
ToolbarItems.Add(new ToolbarItem
{
Text = "Notifications",
Icon = "notifications-icon.png" // change this based on your image requirements, Xamarin.Forms has more than one way to store images
Command = new Command(() =>
{
if (PopupNavigation.PopupStack.Count > 0)
PopupNavigation.PopAsync();
else
PopupNavigation.PushAsync(new NotificationsPanel());
})
});
それだけです。アニメーションを追加するには(NotificationsPanelを画面の右側から作成する)、NotificationsPanel PopupPageで作成する場合は、ビューを右揃えにし、WidthRequestを画面の幅より小さくする必要があります。
希望すると助かります!
私はこれについて全く新しいので、私は何をする必要があるのか分かりません。これらのコードはすべて、InitializeComponent()メソッドの下の.xaml.csファイルに格納されていますか? – Scar
いいえ、私はXAMLの代わりにC#を書く方が好きです。もっとシンプルだと思います。これをXAMLで使用するには、XAMLでルートレイアウトを作成する必要があります(単純なグリッドでも可能です)。実際のXAMLを内容として追加し、コードにnotificationsLayoutをルートビューに追加する必要があります。私はすぐに説明することができません、明日私は詳細な説明で私の答えを更新します:) –
私の新しい編集を参照してください、最終結果ははるかに良いと簡単に実装する。 –