Как использовать IndicatorView в CarouselPage? - PullRequest
1 голос
/ 31 марта 2020

Я пытаюсь добавить точки стиля индикатора в мою CarouselPage; Тем не менее, документация, которую я нашел, показывает только, как использовать новый IndicatorView с CarouselView.

Есть ли возможность использовать его вместо CarouselPage? Если нет, то есть ли что-то похожее на IndictorView, которое используется для CarouselPage? Вот мой код:

<?xml version="1.0" encoding="utf-8"?>
<CarouselPage
    xmlns="http://xamarin.com/schemas/2014/forms"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    xmlns:d="http://xamarin.com/schemas/2014/forms/design"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    x:Class="Page.MainPage">
    <ContentPage>
        <StackLayout Padding="0,20,0,0">
                <Image Source="LOGO.png"
                       HorizontalOptions="Center"
                       VerticalOptions="Center"
                       HeightRequest="195"
                       WidthRequest="205"
                       />
                <AbsoluteLayout HorizontalOptions="Center" VerticalOptions="Center">
                      <Image Source="bg.png"
                             AbsoluteLayout.LayoutBounds="0.35, 0.6, -1, 1" 
                             AbsoluteLayout.LayoutFlags="PositionProportional"          
                             HeightRequest="330"
                             WidthRequest="200"/>
                      <Image Source="Device.png"
                             AbsoluteLayout.LayoutBounds="0.45, 0.4, -1, -1" 
                             AbsoluteLayout.LayoutFlags="PositionProportional"  
                             HeightRequest="252"
                             WidthRequest="290"/>
                </AbsoluteLayout>     
                <StackLayout>
                    <Label Text="Welcome"
                       HorizontalTextAlignment="Center"
                       VerticalTextAlignment="Center"
                       TextColor="White"
                       Padding="0,15"
                       Font="Bold,20"/>

                    <Label Text="This is page 1"
                       HorizontalTextAlignment="Center"
                       VerticalTextAlignment="Center"
                       FontSize="18"
                       Padding="25,0"
                       TextColor="White"/>
                </StackLayout>
        </StackLayout>
    </ContentPage>
    <ContentPage BackgroundColor="#3e454d">
        <StackLayout BackgroundColor="#3e454d">     
                <AbsoluteLayout>
                      <Image Source="Map.png"
                             AbsoluteLayout.LayoutBounds="0.4, 0.7, -1, -1" 
                             AbsoluteLayout.LayoutFlags="PositionProportional"          
                             HeightRequest="330"
                             WidthRequest="205"/>
                      <Image Source="Device.png"
                             AbsoluteLayout.LayoutBounds="0.45, 0.7, -1, -1" 
                             AbsoluteLayout.LayoutFlags="PositionProportional"  
                             HeightRequest="282"
                             WidthRequest="340"/>
                </AbsoluteLayout>     
                <StackLayout Padding="10,10">
                    <Label Text="Join US"
                       TextColor="White"
                       Padding="0,0,0,15"
                       Font="Bold,22"/>

                    <Label Text="This is Page 2"
                       HorizontalTextAlignment="Center"
                       FontSize="18"
                       TextColor="White"/>
                </StackLayout>
        </StackLayout>
    </ContentPage>
</CarouselPage>

1 Ответ

0 голосов
/ 31 марта 2020

Используйте CarouselView вместо CarouselPage, вставьте CarouselPage.Content в CarouselView.ItemLayout, как указано в документации

Обратите внимание, что IndicatorView В другом представлении, которое не встроено в CarouselPage, даже в CarouselView, вы должны указать привязку к CarouselView, чтобы он работал.

Также обратите внимание, что IndicatorView все еще находится в режиме Preview вам нужно установить экспериментальный флаг, чтобы заставить его работать

 Forms.SetFlags("IndicatorView_Experimental");

Также его показ Карусель просмотра также в предварительном просмотре (это не было, странно!)

поэтому вам, возможно, придется установить экспериментальный флаг для этого

Forms.SetFlags("CarouselView_Experimental");
...