Показать меню действий в приложении Xamarin Forms - PullRequest
0 голосов
/ 30 мая 2019

n

В моем приложении в правом нижнем углу экрана есть кнопка «Действие», и при нажатии на нее должно появиться что-то похожее на изображение. Я не уверен, как это получить, выглядит что-то похожее на контекстное меню в Android. Нужна помощь!

1 Ответ

0 голосов
/ 31 мая 2019

Как уже упоминалось в комментарии, вы можете использовать Rg.Plugins.Popup , чтобы удовлетворить ваши требования.Я пишу простой код, и вы можете взглянуть на:

Страница меню действий, она наследует PopupPage, я использую listView, чтобы показать варианты, и вы можете настроить viewCell, чтобы добавить изображение направая сторона.Также обработайте событие click в ListView_ItemSelected:

public partial class Page1 : PopupPage
{
    public Page1 ()
    {
        InitializeComponent ();

        listView.ItemsSource = new List<string>
        {
            "first",
            "second",
            "third",
            "fourth",
            "fifth",          
        };
    }

    private async void OnClose(object sender, EventArgs e)
    {
        await PopupNavigation.Instance.PopAsync();
    }

    private void ListView_ItemSelected(object sender, SelectedItemChangedEventArgs e)
    {
        //
        var index = (listView.ItemsSource as List<string>).IndexOf(e.SelectedItem as string);

        Console.WriteLine(index);
    }
}

И в Xaml:

<StackLayout VerticalOptions="End" HorizontalOptions="FillAndExpand" Padding="20, 20, 20, 20" >
    <Frame CornerRadius="25" Padding="0" Margin="0,0,0,0" BorderColor="Red" HasShadow="False" IsClippedToBounds="True">
        <StackLayout BackgroundColor="White" VerticalOptions="End" >

            <ListView x:Name="listView" HeightRequest="250" RowHeight="50" ItemSelected="ListView_ItemSelected">
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <TextCell TextColor="Black" Text="{Binding .}"></TextCell>
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>

        </StackLayout>
    </Frame>

    <Frame CornerRadius="25"  Padding="0" BackgroundColor="White" IsClippedToBounds="True">
        <StackLayout BackgroundColor="White" VerticalOptions="End" HeightRequest="50">

            <Button Text="Close" TextColor="#A9D1DE" Clicked="OnClose"></Button>

        </StackLayout>
    </Frame>

</StackLayout>

Для использования этой страницы:

   await PopupNavigation.Instance.PushAsync(new Page1());

Вы должны изменить данные в соответствии с вашими требованиями.Например, пользовательский viewCell, отключение возможности прокрутки ListView и т. Д.

Вот как это выглядит в iOS:

screenshot

...