【发布时间】:2016-10-15 09:29:54
【问题描述】:
我刚刚从默认 (app.cs) 模板创建了一个可移植应用程序,没有更改任何代码(尽管我似乎必须更新 Xamarin.Forms 以修复启动异常)并运行它。我得到了这个(没有图标显示):
为了彻底,这里是代码(再一次,模板没有任何变化):
namespace App3
{
public class App : Application
{
public App()
{
// The root page of your application
var content = new ContentPage
{
Title = "App3",
Content = new StackLayout
{
VerticalOptions = LayoutOptions.Center,
Children = {
new Label {
HorizontalTextAlignment = TextAlignment.Center,
Text = "Welcome to Xamarin Forms!"
}
}
}
};
MainPage = new NavigationPage(content);
}
Droid 项目,主要活动:
[Activity(Label = "App3", Icon = "@drawable/icon", Theme = "@style/MainTheme", 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());
}
}
但是,当我从 Petzold 的书中运行 ModelessAndModel 应用程序时(第 24 章的源代码可以找到 here),我得到了这个(图标显示!):
代码没有什么特别之处。 app.cs:
public class App : Application
{
public App()
{
MainPage = new NavigationPage(new MainPage());
}
...
MainPage.cs:
namespace ModelessAndModal
{
public class MainPage : ContentPage
{
public MainPage()
{
Title = "Main Page";
Button gotoModelessButton = new Button
{
Text = "Go to Modeless Page",
HorizontalOptions = LayoutOptions.Center,
VerticalOptions = LayoutOptions.CenterAndExpand
};
gotoModelessButton.Clicked += async (sender, args) =>
{
await Navigation.PushAsync(new ModelessPage());
};
Button gotoModalButton = new Button
{
Text = "Go to Modal Page",
HorizontalOptions = LayoutOptions.Center,
VerticalOptions = LayoutOptions.CenterAndExpand
};
gotoModalButton.Clicked += async (sender, args) =>
{
await Navigation.PushModalAsync(new ModalPage());
};
Content = new StackLayout
{
Children =
{
gotoModelessButton,
gotoModalButton
}
};
}
}
}
机器人项目 MainActivity.cs:
[Activity(Label = "ModelessAndModal", Icon = "@drawable/icon", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsApplicationActivity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
global::Xamarin.Forms.Forms.Init(this, bundle);
LoadApplication(new App());
}
}
我敢肯定,这很简单,但我似乎找不到关键的差异。 如何让我的应用在导航窗格中显示图标?
【问题讨论】:
-
我认为不同之处可能在于 Petzold 的示例使用
FormsApplicationActivity而新模板使用FormsAppCompatActivity作为MainActivity的基类。 -
这对我有用(我的图标恰好是透明的):stackoverflow.com/questions/55188043/…
标签: c# xamarin xamarin.android xamarin.forms