Xamarin froms Forms горизонтальный вид списка с кнопками для перемещения даты вправо, влево - PullRequest
2 голосов
/ 14 января 2020

enter image description here

Это результат того, что мне нужно реализовать. Если кто-нибудь имел контакт с чем-то похожим, дайте мне знать

Ответы [ 2 ]

3 голосов
/ 14 января 2020

StackLayout с использованием BindableLayout внутри ScrollView может использоваться для ваших требований.

XAML-код:

      <ScrollView
            x:Name="calender"
            Orientation="Horizontal">
            <StackLayout
                BackgroundColor="Blue"
                BindableLayout.ItemsSource="{Binding Dates}"
                Orientation="Horizontal">
                <BindableLayout.ItemTemplate>
                    <DataTemplate>
                        <Button
                            TextColor="White"
                            BackgroundColor="Blue"
                            Text="{Binding}"/>
                    </DataTemplate>
                </BindableLayout.ItemTemplate>
            </StackLayout>
        </ScrollView>

Нажатие кнопок:

    private void LeftButton_Clicked(object sender, EventArgs e)
    {
        if (calender.ScrollX > 200)
            calender.ScrollToAsync(calender.ScrollX - 200, 0, true);
        else
            calender.ScrollToAsync(0, 0, true);
    }

    private void RightButton_Clicked(object sender, EventArgs e)
    {
        if (calender.ScrollX < calender.ContentSize.Width - calender.Width - 200)
            calender.ScrollToAsync(calender.ScrollX + 200, 0, true);
        else
            calender.ScrollToAsync(calender.ContentSize.Width - calender.Width, 0, true);
    }

Результат пользовательского интерфейса:

enter image description here

0 голосов
/ 14 января 2020

Может быть, вы можете использовать CarouselView или ScrollView (горизонтальный), посмотрите в этом посте Блог Xamarin , я думаю, что вы можете достичь наилучшего результата с Carousel, но оба будут работать в этой ситуации

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...