如果我想构建顶级材料设计Android应用程序,我会选择哪种Xamarin项目类型?
Xamarin.Android或跨平台Xamarin应用程序?
我更喜欢“跨平台”的应用程序,因为我想稍后定位iOS,但如果有什么遗漏,那么我更愿意使用Xamarin.Android并考虑稍后的代码共享。
< / LI> 醇>Xamarin.Forms还是手动定义XML中的Android UI?
Xamarin.Forms应用是否包含制作顶级“材料设计”应用所需的所有细粒度控制?
Xamarin.Forms是否可以实现这些目标?
答案 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项目。