Xamarin 如何在Android选项卡式页面上使用文本而不是图像

Xamarin 如何在Android选项卡式页面上使用文本而不是图像,xamarin,xamarin.android,xamarin.forms,Xamarin,Xamarin.android,Xamarin.forms,我尝试使用TabbedPageWithNavigationPage示例,如下所示: 但是,Droid项目的示例中没有settings.png页面,请参见:(应用程序优雅地返回到仅文本 在我的版本(从头开始构建)中,如果我没有包含settings.png文件,Droid版本将崩溃,并出现丢失资源错误 我肯定我错过了一些基本的东西…有什么想法吗 更新MainActivity.CS和App.xaml.CS: [Activity(Label = "AppZero.Droid", Icon = "

我尝试使用TabbedPageWithNavigationPage示例,如下所示:

但是,Droid项目的示例中没有settings.png页面,请参见:(应用程序优雅地返回到仅文本

在我的版本(从头开始构建)中,如果我没有包含settings.png文件,Droid版本将崩溃,并出现丢失资源错误

我肯定我错过了一些基本的东西…有什么想法吗

更新MainActivity.CS和App.xaml.CS:

    [Activity(Label = "AppZero.Droid", Icon = "@drawable/icon", Theme = "@style/MyTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
    protected override void OnCreate(Bundle bundle)
    {
        TabLayoutResource = Resource.Layout.Tabbar;
        ToolbarResource = Resource.Layout.Toolbar;

        base.OnCreate(bundle);

        global::Xamarin.Forms.Forms.Init(this, bundle);

        LoadApplication(new App());
    }
}
public partial class App : Application
    {
        public App()
        {
            InitializeComponent();

            MainPage = new AppZeroPage();
        }

        protected override void OnStart()
        {
            // Handle when your app starts
        }

        protected override void OnSleep()
        {
            // Handle when your app sleeps
        }

        protected override void OnResume()
        {
            // Handle when your app resumes
        }
    }
更新2 App.xaml


说明 你的应用程序正在崩溃,因为你正在
SettingsPage.xaml
icon=“settings.png”
。但是,你的Android项目的
/Resources/Drawable
文件夹中没有settings.png文件

有两个选项可以解决此问题:

  • SettingsPage.xaml
    • 这将仅为选项卡使用文本并删除图像
  • 将settings.png文件添加到Android项目的每个
    /Resources/Drawable
    文件夹中
    • 这会将图像添加到您的选项卡中
  • 修复1:删除
    Icon=“settings.png”
    以下是
    SettingsPage.xaml
    的更新版本,其中不包括
    图标
    属性:

    <?xml version="1.0" encoding="UTF-8"?>
    <ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="AppZero.SettingsPage" Title="Settings">
        <ContentPage.Content>
            <StackLayout>
                <Label Text="Settings go here" HorizontalOptions="Center" VerticalOptions="CenterAndExpand" />
            </StackLayout>
        </ContentPage.Content>
    </ContentPage>
    
    
    
    修正2:将Settings.png添加到
    /Resources/Drawable
    /Resources/
    中,有多个
    可绘制的
    文件夹,每个文件夹都与不同的屏幕分辨率密度相关。您需要创建多个分辨率不同的
    png
    文件,并将具有适当分辨率的
    png
    文件添加到适当的文件夹中

    以下是选项卡式页面图标的分辨率:

    • 24×24(mdpi)
    • 36×36(hdpi)
    • 48×48(xhdpi)
    • 72×72(xxhdpi)
    • 96×96(xxxhdpi)
    例如,xhdpi
    png
    的分辨率应为48x48像素


    Xamarin对Drawable folders很感兴趣。

    Hi Webjedi!你能为你的类发布实例化TabbedPage的代码吗?我想我知道这个问题,并会在看到你的代码后确认后发布我的答案。谢谢!这有帮助吗?我是XAML和Xamarin的新手,如果我错过了你需要看到的东西,请告诉我谢谢Webjedi!你也可以发布app.xaml文件中的代码吗?我添加了它Brandon。示例中没有app.xaml…和app.cs…这对我来说也很有趣。:)再次感谢!我只需要最后一件事:你也可以发布AppZeroPage.cs代码吗?对不起,所有的请求!那么,为什么Xamarin示例(第一个链接)有效呢?他们的SettingsPage.xaml还包含Icon=“settings.png”,他们的Droid应用程序在任何地方都没有settings.png。他们的导航链接只显示“设置”,您对示例应用的看法是正确的。可能是您遇到的错误与缺少的settings.png文件无关。让我们将这个问题标记为已回答,以帮助未来的开发人员,然后打开一个新问题,您可以在其中发布堆栈跟踪,我们将进一步调试它!你的回答肯定会让错误消失。我的错误真的消失了…虽然很奇怪。