在Xamarin.Forms中在运行时本地化应用程序并更改FlowDirection?

时间:2019-01-29 22:08:27

标签: xamarin xamarin.forms localization

在应用程序中,设置页面上有一个选项,可让用户选择自己喜欢的语言(英语/阿拉伯语) 选择一个后,我想更改区域性和FlowDirection。 我通过设置资源文件的区域性属性来更改区域性。但  这在运行时是否可行:当用户更改语言时,应用程序本地化和FlowDirection会立即发生相应变化?

docs中有一个提示:

  

您应仅在初始布局上设置FlowDirection属性。   在运行时更改此值会导致昂贵的布局过程,   将影响性能。

因此,有没有一种安全的方法来完成此操作。.我在许多个人使用的应用程序中看到了此选项!

1 个答案:

答案 0 :(得分:0)

  

有没有安全的方法来实现这一目标?

如文档所述,在运行时更改此值会导致昂贵的布局过程,从而影响性能。

但是,您可以使用DependencyService在本机平台中实现它。

  

在iOS

解决方案:在Forms中创建新控件或页面时,请在iOS中创建CustomRenderer。并添加通知,通知控件更改UI。更改值时,发送通知,所有页面和控件将刷新UI。这就是大多数应用程序在本机iOS中实现的方式。由于iOS系统的优化,它不会导致昂贵的布局过程。但是您必须做更多的事情。

  

在Android

解决方案:在Android中执行相同的操作会影响性能。因此,您可以在更改值后重新启动MainActivity