Навигация между страницами внутри вкладки страницы с вкладками, но без потери вкладок страницы

Я работаю над приложением Xamarin.Forms для iOS и Android (кроссплатформенное).

Я работаю со страницей с вкладками, которая имеет 5 вкладок внизу (настраиваемый рендеринг со страницы с вкладками)

Моя проблема в том, что когда я нажимаю другую страницу поверх вкладки, вкладки внизу исчезают.

Есть ли способ сохранить вкладки видимыми при нажатии новых страниц?

Ниже код xaml и фотографии:

<xf:BottomBarPage xmlns = "http://xamarin.com/schemas/2014/forms"
             xmlns:x = "http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class = "qfix.Views.mPage"
             xmlns:local = "clr-namespace:qfix.Behaviors"
             xmlns:pg = "clr-namespace:qfix.Views"
             xmlns:controls = "clr-namespace:qfix.CustomRenders;assembly=qfix"
             xmlns:xf = "clr-namespace:BottomBar.XamarinForms;assembly=BottomBar.XamarinForms"
                  >
    <ContentPage Title = "Home" IconImageSource = "home.png"  BackgroundImageSource = "background.jpg" />
    <ContentPage Title = "Category" IconImageSource = "category.jpg"   BackgroundImageSource = "background.jpg">
        <ContentPage.Content>
            <pg:categories/>
        </ContentPage.Content>
        
    </ContentPage>
    <ContentPage Title = "Request" IconImageSource = "plus.png" BackgroundImageSource = "background.jpg" >
        <StackLayout Spacing = "40" Padding = "25">
            <Image Source = "logo.png" Aspect = "AspectFit" HeightRequest = "100"></Image>
            <local:DateTimePicker2></local:DateTimePicker2>
            <StackLayout Spacing = "10">
                <Label Text = "שם היישוב בו נדרש השירות:" VerticalOptions = "End" FontSize = "Medium"/>
                <controls:EntryAddress TextColor = "Black" WidthRequest = "300" x:Name = "Address"  PlaceholderText = "כתובת" BorderWidth = "10"  BorderColor = "CadetBlue"></controls:EntryAddress>
            </StackLayout >
            <StackLayout Spacing = "10">
                <Label Text = "מתי ניתן להתקשר אליך?" VerticalOptions = "End" FontSize = "Medium"/>
                <controls:MyPicker x:Name = "Time_picker" Title = "עכשוי"   SelectedItem = "Phone_List_ItemSelected" BorderColor = "CadetBlue" BorderWidth = "10"  >
                    <controls:MyPicker.ItemsSource >
                        <x:Array Type = "{x:Type x:String}">
                            <x:String>בעוד שעה</x:String>
                            <x:String>מחר בבוקר-8:00</x:String>
                            <x:String>מחר בבוקר-9:00</x:String>
                            <x:String>מחר אח"צ-13:00</x:String>
                            <x:String>מחר אח"צ-14:00</x:String>
                            <x:String>מחר בערב-20:00</x:String>
                            <x:String>מחר בערב-21:00</x:String>
                            
                        </x:Array>
                    </controls:MyPicker.ItemsSource>
                </controls:MyPicker>
            </StackLayout>
 
            <StackLayout Spacing = "10">
                <Label Text = "מהו סוג העבודה הנדרשת?" VerticalOptions = "End" FontSize = "Medium"/>
                <controls:MyEntry  x:Name = "kindOfWork" Placeholder = "סוג העבודה"  FontSize = "20" BorderColor = "CadetBlue"  BorderWidth = "10"></controls:MyEntry>
            </StackLayout>
            <StackLayout BackgroundColor = "#a2D5C6" Opacity = "0.3" VerticalOptions = "EndAndExpand">
                <Button Text = "הגש בקשה"    BorderColor = "CadetBlue" BackgroundColor = "LightSkyBlue" Clicked = "Button_Clicked"  TextColor = "Black" FontSize = "Large"  ></Button>
            </StackLayout>
        </StackLayout>
    </ContentPage>
    <ContentPage Title = "Profile" IconImageSource = "profile.png" BackgroundImageSource = "background.jpg"/>
    <ContentPage Title = "settings" IconImageSource = "setting.png" BackgroundImageSource = "background.jpg"/>
    
</xf:BottomBarPage>

вот страница во вкладке, там список с 2-мя фото, при тактировании он переходит на другую страницу (фото ниже после этой)

получил это изображение, выполнив «await Navigation.PushModalAsync(new StartupPage());»

1
0
1 170
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

1. Вы должны деформировать свой ContentPage с помощью NavigationPage, например:

<NavigationPage Title = "Home">
    <x:Arguments>
        <ContentPage Title = "Home" IconImageSource = "home.png"  BackgroundImageSource = "background.jpg" />
    </x:Arguments>
</NavigationPage>

<NavigationPage Title = "Home">
    <x:Arguments>
        <ContentPage Title = "Category" IconImageSource = "category.jpg"   BackgroundImageSource = "background.jpg">
            <ContentPage.Content>
                <pg:categories/>
            </ContentPage.Content>
        </ContentPage>
    </x:Arguments>
</NavigationPage>
  1. Вы должны использовать await Navigation.PushAsync(new StartupPage()); вместо Navigation.PushModalAsync.

Модальное страница отличается от нажатия страницы.

проблема в том, что мы не хотим, чтобы панель навигации была вверху, поэтому мы используем только «pushmodalasync», так как мы не можем смешивать оба :/

Fooad Taha 15.12.2020 03:46

Если вы выберете модальный режим, я думаю, вы не сможете сделать панель вкладок доступной одновременно. Он закроет экран. Если вам не нужна панель навигации вверху, вы можете скрыть ее.

nevermore 15.12.2020 03:50

Другие вопросы по теме