问题描述
如果语言更改,我正在尝试更改选项卡式页面中选项卡的标题。我正在调用 onAppearing() 以确保如果更改语言,标签将被翻译。但是由于某种原因,选项卡的标题在我刷新页面(关闭应用程序然后打开它或退出然后登录)之前不会改变,尽管选项卡式页面的标题是直接翻译的。
Method to translate labels
private void InitLabels()
{
Title = Methods.GetMessage("home");
ordersPage.Title = Methods.GetMessage("orders");
// change to RTL if locale is arabic
if (Methods.InitLocale().Equals("ar"))
Methods.SetFlowDirection(this,FlowDirection.RightToLeft);
}
protected override void OnAppearing()
{
base.OnAppearing();
// to be able to update labels if the language is changed
InitLabels();
}
Title 正在更改,但 ordersPage.Title 未更改。
解决方法
我能够修改 Xamarin 选项卡示例来执行此操作
// this is a TabbedPage,and it's children are ContentPages
this.Children[0].Title = "shazbat!";
,
我必须刷新页面才能使更改生效,我使用了以下代码:
var vUpdatedPage = new PageToRefresh();
Navigation.InsertPageBefore(vUpdatedPage,this);
await Navigation.PopAsync();