xamarin.forms 中的 Gmail 导航抽屉(母版页)

Gmail like navigation drawer (master page) in xamarin.forms

我目前在 xamarin.forms 中使用 MVVMlight 中的主从页面,它根据 os 的默认行为进行渲染,它完美地呈现了我想要的,但在 android master 中页面在导航栏下方开始。我希望母版页覆盖整个屏幕高度,就像 ios 这样做有没有任何方法或解决方案没有自定义渲染器,或者是否有必要为此编写自定义渲染器

是的,你可以。检查这些链接。他们都使用 MasterDetail 页面来创建 Navigation Drawer。只有详细信息页面成为主页面视图,母版页面成为滑动菜单。这实际上相当简单。还有其他几个很好的例子。但是我认为您可以通过我列出的 3 个链接完成工作。如果不尝试搜索,例如如何在 Xamarin Forms 中创建导航抽屉。

http://www.meritsolutions.com/mobile-development/implementing-navigation-drawer-in-xamarinforms/

https://www.syntaxismyui.com/xamarin-forms-masterdetail-page-navigation-recipe/

http://blog.falafel.com/xamarin-creating-a-sliding-tray/

使用 FormsAppCompatActivity 而不是 FormsApplicationActivity。

定义你自己的toolbar.axml

toolbar.axml

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:minHeight="?attr/actionBarSize"
    android:contentInsetStart="0dp"
    android:contentInsetLeft="0dp"
    app:contentInsetLeft="0dp"
    app:contentInsetStart="0dp"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
    app:layout_scrollFlags="scroll|enterAlways">
</android.support.v7.widget.Toolbar>

设置自己的ToolbarResource

public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
    {
        protected override void OnCreate(Bundle bundle)
        {
            ToolbarResource = Resource.Layout.toolbar;
            base.OnCreate(bundle);
            global::Xamarin.Forms.Forms.Init(this, bundle);
            LoadApplication(new App());
        }
    }