У меня есть приложение Xamarin, главная страница которого выглядит как
это выглядит хорошо (дело только с Android). Но я хочу, чтобы системная панель инструментов (панель, показывающая прием, батарею и т. Д.) Была того же цвета и с тем же градиентом, что и ToolBar
. Так что-то, что выглядит как
У меня есть следующий код для CustomPageRenderer
в проекте Android
[сборка: ExportRenderer (typeof (ContentPage), typeof (CustomPageRenderer))]
Пространство имен Prox.Droid.Renderers
{
открытый класс CustomPageRenderer: PageRenderer
{
public CustomPageRenderer (Context context): base (context) {}
protected override void OnElementChanged(ElementChangedEventArgs<Page> e)
{
base.OnElementChanged(e);
var toolbar = MainActivity.RootFindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);
if (toolbar == null)
return;
// Default theme colors come from the shared project.
DefaultTheme defaultTheme = new DefaultTheme();
toolbar.SetBackground(new GradientDrawable(GradientDrawable.Orientation.RightLeft,
new int[] { defaultTheme.ThemeLightColor.ToAndroid(), defaultTheme.ThemeDarkColor.ToAndroid() }));
}
}
* *} Тысяча двадцать-один
и мой styles.xml
выглядит как
<?xml version="1.0" encoding="utf-8" ?>
<resources>
<style name="MainTheme" parent="MainTheme.Base"></style>
<!-- Base theme applied no matter what API -->
<style name="MainTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="colorPrimary">#17AEC6</item>
<!-- colorPrimaryDark is used for the status bar -->
<item name="colorPrimaryDark">#009FB6</item>
<!-- colorAccent is used as the default value for colorControlActivated which is used to tint widgets -->
<item name="colorAccent">#93CD8B</item>
<!-- You can also set colorControlNormal, colorControlActivated colorControlHighlight and colorSwitchThumbNormal. -->
<item name="windowActionModeOverlay">true</item>
<item name="android:datePickerDialogTheme">@style/AppCompatDialogStyle</item>
</style>
<style name="AppCompatDialogStyle" parent="Theme.AppCompat.Light.Dialog">
<item name="colorAccent">#17AEC6</item>
</style>
</resources>
Где я пытался добавить следующее
<item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:navigationBarColor">@android:color/transparent</item>
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowTranslucentNavigation">true</item>
в стиле "MainTheme", это просто не работает в баре. Я посмотрел на Этот вопрос и ответы , но это не помогло.
Я также пытался использовать пользовательский NavigationBar
с фоном, установленным следующим образом
public class CustomNavigationPage : NavigationPage
{
public CustomNavigationPage() { }
public CustomNavigationPage(Page root) : base(root)
{
BarBackgroundColor = Color.Transparent;
BarTextColor = Color.White;
}
}
Нет радости.
Q. Как сделать так, чтобы системная панель инструментов сливалась с панелью инструментов?