哪种Xamarin项目类型可供选择用于材料设计的Android应用程序?

时间:2017-03-17 09:59:35

标签: c# android xamarin.android xamarin.forms visual-studio-2017

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

  1. Xamarin.Android或跨平台Xamarin应用程序?

    我更喜欢“跨平台”的应用程序,因为我想稍后定位iOS,但如果有什么遗漏,那么我更愿意使用Xamarin.Android并考虑稍后的代码共享。

    < / LI>

    cross platform

    1. Xamarin.Forms还是手动定义XML中的Android UI?

      Xamarin.Forms应用是否包含制作顶级“材料设计”应用所需的所有细粒度控制?

      Xamarin.Forms是否可以实现这些目标?

    2. samples

3 个答案:

答案 0 :(得分:3)

您可以选择跨平台或特定于Android。此时无关紧要,因为您之后可以切换到材料设计。

您只需按照此link中的说明配置您的Android应用。

这意味着: 设置颜色(如果直接设置颜色,则可以不设置) 的资源/值/ colors.xml

<?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>

设定你的风格 的资源/值/ style.xml

    <?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>

<强>资源/值-V21 / style.xml

    <?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>

属性/ AndroidManifest.xml

中添加此内容
<application android:label="AppName" android:icon="@drawable/icon" android:theme="@style/MyTheme">

自定义工具栏和标签 的资源/布局/ tabs.axml

    <?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" />

<强>资源/布局/ 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:background="?attr/colorPrimary"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
        app:layout_scrollFlags="scroll|enterAlways" />

然后在您的主要活动中,您继承自FormsAppCompatActivity

你可以像这样修改你的oncreate覆盖

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());
}

答案 1 :(得分:2)

如果你创建一个新的Xamarin Forms prj,你的Android prj应该为Material Design

做好准备

首先,将Target框架设置为Android 6.0或更高版本。

然后你应该应用新的主题并自定义工具栏和标签。

最后一个是将MainActivity更改为

public class MainActivity : FormsAppCompatActivity

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());
}

答案 2 :(得分:0)

在“Visual C#”中&gt; “跨平台”选择“空白Xaml应用程序”

您可以看到两个选项,例如Blank Xaml App(Xamarin.Forms Portable)和Blank Xaml App(Xamarin.Forms Shared)。您可以根据项目要求选择其中一个。这两个选项都使用材料设计创建了android app项目。