C# 为材质设计Android应用程序选择哪种Xamarin项目类型?

C# 为材质设计Android应用程序选择哪种Xamarin项目类型?,c#,android,xamarin.android,xamarin.forms,visual-studio-2017,C#,Android,Xamarin.android,Xamarin.forms,Visual Studio 2017,如果我想构建一个顶级的材料设计Android应用程序,我应该选择哪种Xamarin项目类型 Android还是跨平台的Xamarin应用程序 我更喜欢一个跨平台的应用程序,因为我想在以后以iOS为目标,但如果缺少什么,我更喜欢使用Xamarin.Android,以后再考虑代码共享 表单还是用XML手动定义android UI 应用程序是否包含生产顶级材料设计应用程序所需的所有细粒度控制 Xamarin.Forms有可能做到这一点吗 如果您创建了一个新的Xamarin表单prj,那么您的Andro

如果我想构建一个顶级的材料设计Android应用程序,我应该选择哪种Xamarin项目类型

Android还是跨平台的Xamarin应用程序

我更喜欢一个跨平台的应用程序,因为我想在以后以iOS为目标,但如果缺少什么,我更喜欢使用Xamarin.Android,以后再考虑代码共享

表单还是用XML手动定义android UI

应用程序是否包含生产顶级材料设计应用程序所需的所有细粒度控制

Xamarin.Forms有可能做到这一点吗


如果您创建了一个新的Xamarin表单prj,那么您的Android prj应该已经准备好了

首先,将您的目标框架设置为Android 6.0或更高版本

然后,您应该应用新主题并自定义工具栏和选项卡

最后是将MainActivity更改为

public class MainActivity : FormsAppCompatActivity


如果您创建了一个新的Xamarin表单prj,那么您的Android prj应该已经准备好了

首先,将您的目标框架设置为Android 6.0或更高版本

然后,您应该应用新主题并自定义工具栏和选项卡

最后是将MainActivity更改为

public class MainActivity : FormsAppCompatActivity


在Visual C>跨平台中,选择空白Xaml应用程序


您可以看到两个选项,如空白Xaml AppXamarin.Forms Portable和空白Xaml AppXamarin.Forms Shared。您可以根据您的项目要求选择其中之一。这两个选项都可以创建具有材质设计的android应用程序项目

在Visual C>跨平台中选择空白Xaml应用程序


您可以看到两个选项,如空白Xaml AppXamarin.Forms Portable和空白Xaml AppXamarin.Forms Shared。您可以根据您的项目要求选择其中之一。这两个选项都可以创建具有材质设计的android应用程序项目

您可以选择跨平台或特定于android的。这在这一点上并不重要,因为您可以在之后切换到材质设计

您只需按照本文所述配置您的android应用程序

这意味着: 如果直接设置颜色,则可以不设置颜色 Resources/values/colors.xml


您可以选择跨平台或特定于android的。这在这一点上并不重要,因为您可以在之后切换到材质设计

您只需按照本文所述配置您的android应用程序

这意味着: 如果直接设置颜色,则可以不设置颜色 Resources/values/colors.xml


如果您的应用程序很复杂,并且希望在每个平台上都能对设计进行优化,那么我会说使用原生android应用程序,而不是xamarin表单。除非应用程序非常简单,否则我总是这么做。如果基于你的屏幕截图,你可以在X.Forms中完成所有这些。棘手的部分是将编辑/搜索组件放在导航栏的顶部。看,这在X.Forms中现在是不可能的-你必须为此做自定义渲染器。如果你的应用程序很复杂,并且你希望在每个平台上都能优化设计-我会说使用原生android应用程序,而不是xamarin Forms。除非应用程序非常简单,否则我总是这么做。如果基于你的屏幕截图,你可以在X.Forms中完成所有这些。棘手的部分是将编辑/搜索组件放在导航栏的顶部。看,这在X.Forms中现在是不可能的-您必须为此做自定义渲染器。
<?xml version="1.0" encoding="utf-8"?>
<resources>
      <color name="primary">#2196F3</color>
      <color name="primaryDark">#1976D2</color>
      <color name="accent">#FFC107</color>
      <color name="window_background">#F5F5F5</color>
    </resources>
    <?xml version="1.0" encoding="utf-8"?>
<resources>
      <style name="MyTheme" parent="MyTheme.Base">
      </style>
      <style name="MyTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="colorPrimary">@color/primary</item>
        <item name="colorPrimaryDark">@color/primaryDark</item>
        <item name="colorAccent">@color/accent</item>
        <item name="android:windowBackground">@color/window_background</item>
        <item name="windowActionModeOverlay">true</item>
      </style>
    </resources>
    <?xml version="1.0" encoding="utf-8"?>
<resources>
      <style name="MyTheme" parent="MyTheme.Base">
        <!--If you are using MasterDetailPage you will want to set these, else you can leave them out-->
        <!--<item name="android:windowDrawsSystemBarBackgrounds">true</item>
        <item name="android:statusBarColor">@android:color/transparent</item>-->
      </style>
    </resources>
<application android:label="AppName" android:icon="@drawable/icon" android:theme="@style/MyTheme">
    <?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.TabLayout 
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/sliding_tabs"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="?attr/colorPrimary"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        app:tabIndicatorColor="@android:color/white"
        app:tabGravity="fill"
        app:tabMode="fixed" />
    <?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:background="?attr/colorPrimary"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
        app:layout_scrollFlags="scroll|enterAlways" />
protected override void OnCreate(Bundle bundle)
{
    FormsAppCompatActivity.ToolbarResource = Resource.Layout.toolbar;
    FormsAppCompatActivity.TabLayoutResource = Resource.Layout.tabs;

    base.OnCreate(bundle);
    Forms.Init(this, bundle);
    LoadApplication(new App());
}