Почему вкладки не находятся внизу в формах Xamarin? - PullRequest
0 голосов
/ 12 сентября 2018

Товарищи-разработчики,

Я занимаюсь разработкой приложения с помощью Xamarin.Forms и использую последнюю версию 3.1, которая, насколько мне известно, поддерживает Bottom Tabs в Android.Это мой код:

XAML:

<?xml version="1.0" encoding="utf-8"?>
<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms" 
    xmlns:android="clr-namespace:Xamarin.Forms.PlatformConfiguration.AndroidSpecific;assembly=Xamarin.Forms.Core"
    android:TabbedPage.ToolbarPlacement="Bottom"
    android:TabbedPage.BarItemColor="#666666"
    android:TabbedPage.BarSelectedItemColor="Black"
    BarBackgroundColor="#2196F3"
    BarTextColor="White"></TabbedPage>

C #:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;

namespace BottomTabsExample
{
    public partial class MainPage : TabbedPage
    {
        public MainPage()
        {
            var navigationPage = new NavigationPage(new History());
            navigationPage.Icon = "ic_history.png";
            navigationPage.Title = "History";

            var navigationPage2 = new NavigationPage(new History());
            navigationPage2.Icon = "ic_earth.png";
            navigationPage2.Title = "Earth";
            Children.Add(navigationPage);
            Children.Add(navigationPage2);
        }
    }
}

Однако они всегда отображаются в верхней части, как показано на следующем рисунке:

android oreo

Предыдущее изображение использует Android Oreo 8.1 (я также тестировал версию 7.1, и у меня был тот же результат).Я получил частичные примеры из этих блогов:

https://montemagno.com/xamarin-forms-official-bottom-navigation-bottom-tabs-on-android/

https://blog.xamarin.com/xamarin-forms-3-1-improvments/

Кроме того, версии .NET Standard и Xamarin.Forms:

versions

Кто-нибудь из вас испытывал это раньше?Кто-нибудь знает, что я делаю не так?Спасибо за вашу поддержку.

1 Ответ

0 голосов
/ 13 сентября 2018

Почему вкладки не находятся внизу в формах Xamarin?

Я обнаружил, что вы пропустили InitializeComponent() в вашем MainPage, поэтому проблема возникает.

Метод InitializeComponent() загрузит контент XAML, когда вы удалите этот метод, ваш контент XAML будет проигнорирован.

Решение:

Установить нижние вкладки в коде C #:

using Xamarin.Forms.PlatformConfiguration.AndroidSpecific;

On<Xamarin.Forms.PlatformConfiguration.Android>().SetToolbarPlacement(ToolbarPlacement.Bottom);
...