2

各位开发者,

我正在使用 Xamarin.Forms 开发一个应用程序,并且我使用的是最新版本 3.1,据我所知,它支持 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 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 的版本:

版本

你们中有人经历过吗?有谁知道我做错了什么?谢谢你的支持。

4

1 回答 1

2

为什么选项卡不在 Xamarin Forms 的底部?

我发现您的 中缺少InitializeComponent()您的MainPage,这就是问题发生的原因。

InitializeComponent()方法将加载XAML内容,当您删除此方法时,您的XAML内容将被忽略。

解决方案:

在后面的 C# 代码中设置底部选项卡:

using Xamarin.Forms.PlatformConfiguration.AndroidSpecific;

On<Xamarin.Forms.PlatformConfiguration.Android>().SetToolbarPlacement(ToolbarPlacement.Bottom);
于 2018-09-13T08:14:15.883 回答