如果我想构建一流的 Material 设计 Android 应用程序,我应该选择哪种 Xamarin 项目类型?
Xamarin.Android 还是跨平台 Xamarin 应用程序?
我更喜欢“跨平台”应用程序,因为我以后想针对 iOS,但如果缺少某些东西,那么我更喜欢使用 Xamarin.Android 并在以后考虑代码共享。
Xamarin.Forms 还是在 XML 中手动定义 android UI?
做 Xamarin.Forms应用程序是否包含制作一流的“ Material 设计”应用程序所需的所有细粒度控制?
Xamarin.Forms 可以实现这样的事情吗?
最佳答案
您可以选择跨平台或 android 特定。此时这并不重要,因为之后您将能够切换到 Material Design。
您只需按照 link 中的说明配置您的 Android 应用程序.
这意味着: 设置颜色(如果你直接设置颜色,你可以不用) Resources/values/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>
设置你的风格 Resources/values/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>
Resources/values-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>
在Properties/AndroidManifest.xml中添加这个
<application android:label="AppName" android:icon="@drawable/icon" android:theme="@style/MyTheme">
自定义工具栏和标签 Resources/layout/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" />
Resources/layout/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" />
然后在您的主要 Activity 中,您继承自 FormsAppCompatActivity
然后您像这样修改您的 oncreate override
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());
}
关于c# - 为 Material Design Android 应用程序选择哪种 Xamarin 项目类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42854415/