过去几天我一直在努力解决有关 Android 上的栏颜色的问题。利益相关者希望导航页面栏具有特定的蓝色阴影,虽然最初可以使用
private Page GetNavigationPage(Page innerPage){
var navigation = new NavigationPage (innerPage);
navigation.BarBackgroundColor= Color.FromHex ("#00263A");
navigation.BackgroundColor = Color.FromHex ("#00263A");
return navigation;
}
我们发现,当使用 Navigation.PushModalAsync 方法时,一旦调用页面,栏的颜色就会变成浅蓝色。根据 Xamarin 的说法,这是有意重置 ActionBar https://bugzilla.xamarin.com/show_bug.cgi?id=22237 ,但尝试使用相同的 NavigationPage 对象并在模式窗口消失后设置值将不会更新颜色,无论如何调用。
最佳答案
我创建的解决方案相当脏,我计划做一些更优雅的事情,但为了解决这个问题,我在 MainActivity 中创建了一个操作
ActionBar.SetBackgroundDrawable(new ColorDrawable(Color.ParseColor("#00263A")));
或者任何你想要的颜色。解决方案是将其传递到您的应用程序类中,或者通过某些服务将其公开给 PCL。然后根据需要,您可以简单地调用它来将条重置为您选择的颜色。 我发现在执行完之后立即调用它
Navigation.PushModalAsync
似乎获得了最干净的结果。在我的测试中,如果我此时执行此操作,我没有注意到默认颜色会出现。
关于android - Xamarin Forms BarBackground 在 Android 上丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33271017/