我现在正在借助 xamarin 表单 [xaml] using crossplatform portable project template in Visual studio
While designing home page of my application I like to have a design like in a normal android app
https://developer.android.com/training/appbar/index.html 制作一个 android 应用程序
但我使用的是导航栏,主页中使用的代码就像
public Homepage()
{
InitializeComponent();
#region toolbar
ToolbarItem tbi = null;
if (Device.OS == TargetPlatform.Android)
{
tbi = new ToolbarItem("+", "plus", async () =>
{
var target_page = new AddStudent();
await Navigation.PushModalAsync(target_page);
}, 0, 0);
}
ToolbarItems.Add(tbi);
#endregion
this.Title = "Home Page";
}
它给出了一个带有标题的导航栏和右侧的 + 图标,可以帮助我显示另一个页面
但是我怎样才能设计一个页面,就像链接中发布的那样,左侧有一些菜单项和事件,右侧有一些菜单操作,使用这个 NavBar 。
任何示例或有用的链接?
你听说过 AppCompat 吗?对于初学者,请参阅 this 。
据我了解,您希望应用程序在 iOS 和 Android 上看起来像使用 Android Material Theme 创建的一样。
您显然需要为导航栏实现 custom renderer 。这意味着您必须为要使用它的每个平台编写导航栏的自定义实现。此外,您需要从 PCL 中编辑其中的一部分。
例如,您可以使用此代码摆脱导航栏上 Xamarin 的默认图标(将其添加到您的 Droid 项目中):
对于 PCL 中的每个 UI 对象,每个平台都有一个类比。将 XF 对象转换为本机对象是渲染器的职责。创建对象时,会调用
OnElementChanged
。从那里,您可以访问本机 API 并对 PCL 中不可用的元素进行修改。就像调用SetIcon
一样(请记住,此代码可能是特定于 Android 的。在大多数情况下,您可能需要复制和修改渲染器才能使其在其他平台上工作)。为了将按钮添加到操作栏的右侧,我将使用以下 xaml:
而不是简单地用后面的代码备份它,比如处理一个简单的按钮单击时:
您可以添加其中的几个。
此外,如果您想将上下文菜单添加到工具栏并希望它的行为类似于原生 android 工具栏,您可能应该阅读一些关于 animation 并自己绘制/动画它的内容,然后使用它来协调它,比如说, AbsoluteLayout 。