我正在开发一个 Xamarin.Forms 4 项目,并且我正在使用 App Shell。
我使用的是 Tabbar,多亏了自定义渲染器,我才能将背景图像添加到“标题”
在
<TabBar>
<Tab
Title="ANALYSIS"
Icon ="chart_icon.png">
<ShellContent
ContentTemplate="{DataTemplate local:Reports.ReportsPage}" />
</Tab>
// other tabs...
</TabBar>
我关注了THIS对于渲染器
我得到了这个
现在我必须添加侧边菜单,我将之前的 AppShell.xaml 代码替换为:
<FlyoutItem FlyoutDisplayOptions="AsMultipleItems">
<ShellContent Title="ANALYSIS"
Icon="chart_icon.png"
ContentTemplate="{DataTemplate local:Reports.ReportsPage}" />
//other tabs...
</FlyoutItem>
有没有办法创建渲染器或类似 Tabbar 渲染器的东西?
提前致谢!
最佳答案
根据你的描述,我想你是想为toolbar设置背景图片,而不是tabbar。
自定义渲染器可以做到这一点。
MyShell.cs
public class MyShell:Shell
{
}
AppShell.xaml.cs 注意:AppShell需要继承MyShell。
public partial class AppShell : MyShell
{
public AppShell()
{
InitializeComponent();
}
}
MyShellRenderer.cs
[assembly: ExportRenderer(typeof(MyShell), typeof(MyShellRenderer))]
namespace ShellDemo.Droid
{
public class MyShellRenderer : ShellRenderer
{
public MyShellRenderer(Context context) : base(context)
{
}
protected override IShellToolbarAppearanceTracker CreateToolbarAppearanceTracker()
{
return new CustomToolbarAppearanceTracker();
}
}
public class CustomToolbarAppearanceTracker : IShellToolbarAppearanceTracker
{
public void Dispose()
{
}
public void ResetAppearance(Android.Support.V7.Widget.Toolbar toolbar, IShellToolbarTracker toolbarTracker)
{
}
public void SetAppearance(Android.Support.V7.Widget.Toolbar toolbar, IShellToolbarTracker toolbarTracker, ShellAppearance appearance)
{
toolbar.SetBackgroundResource(Resource.Drawable.pink);
}
}
}
关于shell - 如何使用弹出窗口在 xamarin shell 标题中设置背景图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60338755/