1

현재 Android에 Xamarin Forms 앱을 만들고 있습니다.일부 장치의 탐색 표시 줄에서 Xamarin.Forms의 색이 변경되지 않는 이유는 무엇입니까?

앱 상단의 탐색 바 색상을 동적으로 변경하려고합니다. Android 4.1 API 17에 고정 된 이전 휴대 전화를 사용하여 성공적으로 관리했지만 다른 휴대 전화는 작동하지 않으므로 시도했습니다. 나는 시도했다 :

삼성 SM-G388F을 - 안드로이드 5.1 API (22)

구글 픽셀 - 안드로이드 7.1 API

Screenshot - Older phone - works perfectly

25

Screenshot - Newer phones - does not work - simply inherits page background colour

원래 난에 정의 된 DynamicResource를 사용했다 App.xaml을 사용하여 사용중인 환경에 따라 BarBackgroundColour를 변경합니다. - 라이브/테스트. 다른 두 속성 인 BackgroundColor 및 BarTextColor가 정상적으로 작동합니다.

   App.Current.Resources["navBarColour"] = App.Current.Resources["red"]; 

내가 변경 시도했다 : App.xaml.cs를에서 응용 프로그램로드에

<Color x:Key="navBarColour">#F4721C</Color> 
    <Style TargetType="NavigationPage"> 
      <Setter Property="BackgroundColor" Value="{StaticResource pageBackground}"/> 
      <Setter Property="BarBackgroundColor" x:Key="navBar" Value="{DynamicResource navBarColour}"/> 
      <Setter Property="BarTextColor" Value="{StaticResource textColor}"/> 

     </Style> 

설정

if (Settings.Environment.ToLower() == "live") 
     { 
      Application.Current.Resources["navBarColour"] = Application.Current.Resources["anglianLightBlue"]; 
     } 
     else 
     { 
      Application.Current.Resources["navBarColour"] = Application.Current.Resources["red"]; 
     } 

사용자는 여기에서 설정 페이지에서 환경을 전환 할 수있는 능력을 가지고 이 StaticResource 및 직접 내 xaml있는 Color.Black, 그것을 설정 시도하고 여전히 작동하지 않습니다 - 나는 그것을 어디에서나 변경할 수있는 방법을 찾을 수 없습니다.

Google 또는 이와 유사한 문제가있는 사용자는 아무 것도 찾을 수 없습니다. 다른 사람이 이것을 경험 했습니까? 그렇다면 어떻게 해결 했습니까?

답변

2

이것이 작동하지 않는 이유를 찾지 못했지만 해결 방법을 찾았습니다. NavigationBar는 페이지 배경색을 상속하므로 페이지 배경을 바가 원하는 색상으로 변경 한 다음 나머지 내용을 컨테이너 (ScrollView/ContentView)로 고정하고 페이지의 컨테이너 배경을 채색합니다 배경색 이것은 원하는 효과를줍니다. 여전히 작동하지 않는 이유를 알고 싶지만 현재로서는 적절한 해결 방법입니다.