xamarin ज़ामाइन रूप: एंड्रॉइड मैटियल स्टाइल स्टेटस बार रंग अनुकूलित करें




material-design xamarin.forms (4)

मैंने अपने Xamarin.Forms परियोजना पर निम्नलिखित कोड के साथ सामग्री विषय को सक्षम किया है, लेकिन एंड्रॉइड पर (लॉलीपॉप और मार्शमोलो) शीर्ष स्टेटस बार (जहां घड़ी, सिग्नल, बैटरी आदि स्थित हैं) बदल नहीं पाती हैं। यह हमेशा काला रहता है मैंने बहुत मंचों और ब्लॉगों को पढ़ा है, बहुत सारे संयोजनों की कोशिश की है, लेकिन मैं यह स्थिति पट्टी रंग पाने में सक्षम नहीं हूं क्योंकि मैं चाहता हूं।

MainActivity.cs

[Activity(Theme = "@style/MyTheme", Label = "MyApp", Icon = "@drawable/AppIcon", ScreenOrientation = ScreenOrientation.Portrait, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]

मान-V21 / style.xml

<resources>
  <style name="MyTheme.Splash" parent="android:Theme.Material.Light">    
    <item name="android:windowBackground">@drawable/SplashScreen</item>
    <item name="android:windowNoTitle">true</item>
  </style>
  <style name="MyTheme" parent="android:Theme.Material.Light">
    <item name="android:windowDrawsSystemBarBackgrounds">false</item>
    <item name="android:colorPrimary">@color/Brand</item>
    <item name="android:textColorPrimary">@color/White</item>
    <item name="android:statusBarColor">@color/BrandDark</item>
    <item name="android:colorPrimaryDark">@color/BrandDark</item>
    <item name="android:colorAccent">@color/Brand</item>
    <item name="android:textColor">@color/Brand</item>    
  </style>  
</resources>

मान / colors.xml

<resources>  
  <color name="SplashBackground">#f78b2b</color>
  <color name="Brand">#f78b2b</color>
  <color name="BrandDark">#e47108</color>
  <color name="White">#ffffff</color>
</resources>

किसी भी मदद के लिए धन्यवाद!


मुझे स्वीकार किए गए उत्तर के समान ही था। यह हमारी एक परियोजना पर काम कर रहा था, लेकिन अन्य नहीं

मैंने इस विशेष समस्या का कोई समाधान नहीं देखा है, इसलिए मैं यहां सबसे पहले हूं।

अगर आपने मैनिफ़ेस्ट के बजाय AssemblyInfo.cs में उपयोग-अनुमतियां घोषित की हैं तो स्थिति पट्टी अपेक्षित रूप से काम नहीं करेगा।

यहां तक ​​कि अगर आप इसे प्रत्येक गतिविधि के लिए अलग-अलग सेट करके काम करते हैं तो भी आप कार्यकलापों में संक्रमण के दौरान काम नहीं करते। इसलिए एकमात्र तरीका है प्रकट करने के लिए प्रयोग-अनुमति वक्तव्यों को स्थानांतरित करना।

उम्मीद है कि मैं किसी की मदद कर सकता हूँ!


आपको सफलता पाने के लिए इस ट्यूटोरियल का पालन करना चाहिए।

मूल रूप से आपको FormsAppCompatActivity FormsApplicationActivity और FormsAppCompatActivity बजाय FormsAppCompatActivity का उपयोग FormsAppCompatActivity होगा। FormsApplicationActivity FormsAppCompatActivity बजाय Theme.Material.LightTheme.Material.LightTheme.Material.Light


बराबर जावा संस्करण से एक अनुवाद:

if (Build.VERSION.SdkInt >= BuildVersionCodes.Lollipop)
{
    // clear FLAG_TRANSLUCENT_STATUS flag:
    Window.ClearFlags(Android.Views.WindowManagerFlags.TranslucentStatus);

    //Window.ClearFlags(WindowManager.Pa WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
    Window.AddFlags(Android.Views.WindowManagerFlags.DrawsSystemBarBackgrounds);

    // finally change the color
    Window.SetStatusBarColor(new Color(ContextCompat.GetColor(this, Resource.Color.colorPrimaryDark)));
}

अन्य समाधान सबसे आसान तरीका है, मेन ऐक्टिविटी.cs के ऑन क्रेट विधि में जोड़ें:

Window window = this.Window; window.ClearFlags(WindowManagerFlags.TranslucentStatus); window.AddFlags(WindowManagerFlags.DrawsSystemBarBackgrounds); window.SetStatusBarColor(Android.Graphics.Color.Rgb(116, 181, 13));