xamarin_xamarin 布局 - CSDN
xamarin 订阅
Xamarin始创于2011年,旨在使移动开发变得难以置信地迅捷和简单。Xamarin的产品简化了针对多种平台的应用开发,包括iOS、Android、Universal Windows Platform、Watch OS、tvOS和Mac App。Xamarin由许多著名的开源社区开发者创立和参与,而且也是Mono项目的主导者——C#与·NET框架的开源、跨平台实现。 展开全文
Xamarin始创于2011年,旨在使移动开发变得难以置信地迅捷和简单。Xamarin的产品简化了针对多种平台的应用开发,包括iOS、Android、Universal Windows Platform、Watch OS、tvOS和Mac App。Xamarin由许多著名的开源社区开发者创立和参与,而且也是Mono项目的主导者——C#与·NET框架的开源、跨平台实现。
信息
属    性
作为一个跨平台开发框架
外文名
Xamarin
项目属性
开源
读    音
'Zæmərin
创立时间
2011年
Xamarin特点
作为一个跨平台开发框架,Xamarin.Mobile有很多优点。在这一框架内,开发iOS、Android、Windows Phone、watchOS、tvOS和Mac App应用可以不用转到Eclipse 或者额外购买Mac并使用Xcode,而继续在Visual Studio之中使用C#与.NET Framework进行。Xamarin是mono项目的一个分支,但这里面最大的区别Xamarin曾是商业项目.mono做为跨平台的框架已得到越来越多的商业项目的肯定,令外界担心的版权问题\可靠性\稳定性也得到证实,使用mono最大的好处是可以使用其它平台众多的项目解决方案,而不必被限制在windows平台下贫乏而又昂贵的各种解决方案.2016年,Xamarin被Microsoft收购并开源 [1]  。自2016年起,它与.NET一样,不收取任何费用或许可费用,包括用于商业用途。
收起全文
  • xamarin其实也是一个鸡肋

    万次阅读 热门讨论 2014-12-12 12:08:20
    个人感觉Xamarin完全也是一个鸡肋,没必要过多的时间在xamarin上面。  为什么手xamarin是一个鸡肋?  1、xamarin并没有把android和ios等平台的机制给封装起来。类似Cordavo一样,调用统一的API,可以跨平台

            刚刚体验了一把VS 2015,后来因为部分sdk和工具下载太慢,还是最终决定卸载。顺道了解了下xamarin studio。个人感觉Xamarin完全也是一个鸡肋,没必要过多的时间在xamarin上面。

            为什么手xamarin是一个鸡肋?

            1、xamarin并没有把android和ios等平台的机制给封装起来。类似Cordavo一样,调用统一的API,可以跨平台实现。而是和安卓API和IOS API一一对应,也就是说我只是用C#来代替了java和oc的开发。虽然我也非常习惯用C#来开发,但是我认为学习一门语言并需要太多的时间,主要是sdk的实现机制,和开发技巧,是最难的,也是周期最长的。如果花费了大把的价钱,只是为了用C#的 foreach而不是 java的for.就有点鸡肋了。

            2、xamarin的教程和培训都是要收费的,而且学习周期和曲线并不会比原生态的理想多少。

            3、原生态的app开发的数量大,而且开源的也不少,一旦出现问题,可以在论坛求助,可以找到开源项目做参考,但是xamarin在这方面肯定不比原生态的开发。

            4、xamarin可能初次上手会快那么一点点,但是如果时间长了,发展会受到制约的。没有任何一个成熟的商用软件全部用xamarin的,只是可能在初期和原型的时期考虑一下。

           5、xamarin 在android上基于moni,效率可能会比java的低一些。

           6、xamarin真心贵,太贵了。相比开发android的 Android studio或者eclipse。或者xcode来比,太贵了。贵到我宁愿买个mac pro,然后熬夜看看 swift.

           附上xamarin的收费:http://xamarin.csdn.net/module/btc/xamarin/price



    展开全文
  • Xamarin从0到100

    千人学习 2019-06-27 11:11:24
    Xamarin让.NET程序员在移动互联时代占据了有利位置,用熟悉的C#语言+XAML+地表强Visual Studio 2017 能构建iOS / Android / Windows App 。
  • Xamarin开发这手册教程

    2020-07-30 23:31:54
    深入牵出的介绍Xamarin,入门必备。包括IDE的界面,运行,插件等等
  • 一个vs2017 使用 Xamarin.forms开发APP的demo. 使用Xamarin.forms来开发跨平台的demo
  • 这十来天对Xamarin的学习踩了很多的坑,说来也是一把心酸泪,下面为大家一 一道来,并提供这些天收集到的能用的实例源码,放在文末分享给大家,都是完整带包的解决方案可能会比较大(大多是过墙找到的,也有个仿新闻...

    一、 前言

    这半个月来对Xamarin的学习踩了很多的坑,说来也是一把心酸泪,下面为大家一 一道来,并提供这些天收集到的能用的实例源码,放在文末分享给大家,都是完整带包的解决方案可能会比较大(大多是过墙找到的,也有个仿新闻的app是国人写的)。

    二、 后续更新预览

    1、 Xamarin.forms环境搭建

    2、 启动页(含图片加载)

    3、 页面跳转

    这篇文章是 2018-12-13 19:17:29 写的,现在已经是2020年6月了,也就是说对于 Xamarin 我已经快两年没接触过了,我也一直在从事 Java 的工作,所以对于大家的一些提问,我已是无能为力,抱歉!还望理解!本人当时所学的都在这几篇文档里面了。

    三、 Xamarin介绍

    如果您对介绍不感兴趣,可以跳过此段。

    1、 Xamarin可跨Android、IOS、Windows(手机)三端。

    2、 Xamarin微软收购的,原来是收费的,现在免费了。

    3、 Xamarin的前身是mono,所以编译的时候会用到mono的包。

    4、 我们现在使用的是Xamarin.forms而不是Xamarin了。

    5、 用Xamarin开发安卓app的朋友请收藏:https://developer.xamarin.com/api/root/MonoAndroid-lib/

    四、 完整环境搭建

    首先,为了避免给大家带来不必要的麻烦,我把我的环境介绍一下(但不是说您一定需要这样的环境):

    VS2017 Enterprise,Windows10 1809

    VS2017安装的首页把Xamarin勾上安装,如果你忘了勾选Xamarin,如下图打开installer,把Xamarin勾选上。

    1、 安装Xamarin的插件

     2、 下载Xamarin.Andriod Templates Pack

    3、 检查是否安装了Xamarin.Android SDK

    4、 安装指定版本的安卓SDK

    当时我是不懂,为了适应下载下来的项目,所以下载很多的SDK。这个坑我踩过了,经验是选指定需要的SDK版本就可以了。

     

    环境到这里就完成了,只是如果项目后面需要一些Nugget包,再逐个下载。

    附加:真机调试

    电脑上插上数据线连接电脑,在手机上面开启开发者模式。

    选择USB配置MIDI:

    然后查看VS上面的运行是否变成了你手机的名称;如果是,直接运行就可以了。

    五、 所有app源码demo

    给大家讲一下这些实例有哪些地方找哪个demo参考,希望能给你节约一些时间。

    1、 Topeka

    2、 DemoApp

    这是一个有很多功能页面的例子,布局那些都可以参考一下。下面简单抓了两个图:

    3、 TabbedNavigate

    页面跳转和基础导航栏的生成的方式。

    4、 快递大师

    这个主要参考如何嵌入HTML代码在Xamarin.forms里面。

     

    5、 仿某新闻app的Demo

    除了登录页面,可以参考启动页,下部导航栏,个人页面布局,加号弹出模态框,还有!就是初始安装的三张引导页面。唯一的不足是存在bug。

    6、 Xamarin.TV Scripts

    这个主要是参考SQLite数据库的使用方式,还有就是页面布局。

    7、 IntelligentWorld

    参考一下启动页和侧滑页面。

    我本来设置的是1积分就可以下载的。

    源码来源不易,有积分的话点这里:https://download.csdn.net/download/qq_41647999/10848828

    没有积分点这里:https://pan.baidu.com/s/1Na1LrHQ8piEfCpTxHNPxpA   提取码:qy1v
    最后,感谢您的阅读。

     

    展开全文
  • 什么时候该选用Xamarin?

    千次阅读 2019-04-26 14:20:05
    那么,什么时候应该选用Xamarin呢? 5 questions to consider before choosing Xamarin 1 是否需要跨平台? 根据公司情况、团队大小。如果每个平台有足够的开发人员,那么就不需要跨平台了。如果一共也就那么一两...

    现在开发app也好,桌面程序也好,有很多不同的技术可以选择。那么,什么时候应该选用Xamarin呢?

    5 questions to consider before choosing Xamarin

    1 是否需要跨平台?

    根据公司情况、团队大小。如果每个平台有足够的开发人员,那么就不需要跨平台了。如果一共也就那么一两个人,需要开发安卓、iOS app,那么跨平台可能是一个比较好的选择。如果还要开发uwp程序,Xamarin就又有优势了。

    如果不需要跨平台,就不必选用Xamarin了。

    2 是否同时还要开发桌面程序,Windows? Mac?

    如果同时还需要开发桌面程序(Windows或Mac),跨平台的概念也就更大了。这时Xamarin会是个比较好的选择。因为Xamarin的xaml和Windows很接近,和Windows 10 UWP中Xaml更接近。而且Xamarin还有支持wpf的计划,Xamarin在mac上的预览版也已经出来。详见  Glimpse the Future of Xamarin Forms 3.0

    所以如果还跨平台到Windows Mac,Xamarin的优势就彻底发挥出来了。

    当然这里还得提一下JavaScript的的electron

    3 已有的技术储备是什么,熟悉什么编程语言平台?

    有的人说编程语言不重要,2个星期任何语言都搞定。这里说的是泛义上的编程语言,包括它的各种lib支持,思考方式。各种模块是否已经有成熟的实现,网上是否有各种例子。真正熟悉到相关的编程生态,2-3年不为过。

    如果是从c#过来的,和Xamarin会天生好感,里面async await用的很溜啊。网上各种跨平台的c#库也很多。如果还有很多既有的模块是c#开发的,比如通讯协议,商业逻辑,那么选Xamarin想都不用想。

    如果是从web技术过来的,熟悉javacript,react native倒是个不错的选择。好像javascript老是被提及啊?是的。javaScript在问题1 2 3 4里都是个不错的选项,就看你喜不喜欢这个语言了。

    从java过来的呢?老老实实研究android专一平台,就不要趟跨平台的水了。研究kotlin也行啊。

    c++过来的呢?回到第一个问题,先回答那个问题。

    python 和 go呢?这么高大上的,往AI、cloud看看吧,别走弯路了。

     

    那么Xamarin适合谁呢?熟悉或者愿意学习c#语言的,大多也就是原Windows程序员或asp.net程序员,团队不大,必须跨平台开发。现有一些c#开发的代码或者库可以复用

     

    下面还有两个问题,可以考虑一下。如果有共鸣,也算加分项。

    4 Declarative UI

    什么是declarative ui呢?就是UI的编写是申明一样的。Android的axml/xml是,web中的html、css都是;MFC严格的说不算,wpf的xaml算;iOS里面那个啥storyboard, xcode的Interface Builder都不算。qt的qml算。

    其实UI的发展,web是走在前面的,wpf android qt都跟上了,xcode原地踏步,听说很多人都是用代码直接写UI的,高手啊。

    Xamarin.Forms是用的xaml, 编写的时候是申明式的,后台会用原生的控件来显示。这也是为什么Xamarin强调自己是native app的原因之一。

    另外,使用Xamarin,不一定要用Xamarin.Forms,完全可以用native的Xamarin,继续使用Android的xml文件来写UI,或者继续用interface builder。这种情况下,Xamarin只起到了一个编译语言的作用,然后把java class/api搞了一个一一对应的c#版本。熟悉Android api的可以用这种方式写。一一对应的哪种程度呢?看文档查好java api,直接写Xamarin c#代码没任何问题。objective c麻烦一点,swift的api文档转c#基本可以看懂。

    iOS写UI是最烦的,没有之一,比mfc还烦。最敬仰iOS里写UI的大拿们。

    如果UI需要更复杂一些,甚至每个版本都要变,就像常用的jd taobao,用web技术的react native就有优势了。

    5 MVVM

    没听说过的可能不知道它的强大,一旦熟练使用后,在更换任何一个技术时都会查一下新技术是不是支持mvvm。它和declarative UI是同时发威的,利用bingding,把ViewModel独立出来更好的跨平台,简化UI的编写工作,是跨平台程序写平台无关代码的利器。

    MVVM由wpf开创,Xamarin.Forms很好的继承了这一点。现在Android也在学data binding哦。

     

    选一门技术,要分析要开发的产品的特点,如何提高开发效率。不同的选择,可能是成倍的效率差别。Xamarin可以在某些场合是个不错的选择。

    展开全文
  • Xamarin深坑集锦

    千次阅读 2018-05-02 11:31:38
    1 图片无法引用问题现象:图片明明已经放入安卓及IOS的资源目录下,其他图片可以用,只有个别图片无法引用。问题原因:有时直接复制进来的资源文件没有指定生成操作(偶然事件),导致程序编译时找不到目标文件。...

    • 1 图片无法引用

    问题现象:图片明明已经放入安卓及IOS的资源目录下,其他图片可以用,只有个别图片无法引用。

    问题原因:有时直接复制进来的资源文件没有指定生成操作(偶然事件),导致程序编译时找不到目标文件。

    解决方式:右键目标图片查看属性,安卓文件则在“生成操作”栏目选择“AndroidResource”,IOS则选择“BundleResource”,然后重新生成解决方案。(有时重新生成解决方案后仍不能选择,需要重新打开项目尝试)

     

    •  2 Tab子页数据不显示

    问题现象Tab页中只有第一个页面显示正常,后面的页面不显示绑定的数据信息。

    问题原因:数据初始化操作在重写的方法OnNavigatedTo中执行,由于只有第一个Tab页执行了OnNavigatedTo方法,所以只有Tab页中的第一个正常显示绑定的数据信息。

    解决方式:将方法转移至构造方法(函数)中执行。


    • 3 页面跳转不显示头部导航栏

    问题现象:页面跳转时,没有头部导航栏信息,直接显示页面内容。如下图所示:

     

    问题原因:没有在NavigationPage的导航关系下。

    解决方式:在页面跳转时,添加NavigationPage/” ,如下图


     

    •  4 子页面不显示返回按钮

    问题现象:页面跳转时,子页面头部不显示返回按钮。如下图所示: 

    问题原因:父页面不在NavigationPage的导航关系下。

    解决方式:在跳转至父页面的地方添加NavigationPage/,此处在“App.xaml.cs”文件中添加,如下图:


    • 5 页面显示两级头部导航栏

    问题现象:页面显示两级头部导航栏,如下图所示: 


    问题原因

    A、父页面已经在NavigationPage关系下,父页面跳转至子页面时又添加了“NavigationPage/”关系。

    B、子页面本身需要显示NavigationBar(例如Tab页,底部导航切换页),会导致两级头部导航栏。

    解决方式

    针对A:如果当前父页面已经在NavigationPage关系下,则在子页面跳转时,不要添加“NavigationPage/”。

    针对B:以方式一的样式跳转,关键参数“useModalNavigation”为true。(方式二跳转后子页面会有导航栏)

     

    •  6 隐藏状态栏/头部导航栏

    问题现象:由于登录页存在类似“忘记密码”“用户注册”等页面跳转操作,为了让子页面显示时有头部导航标题及返回按钮(图标),所以在跳转至登录页的地方添加NavigationPage/”,导致登录页头部出现导航栏,实际登录页并不需要显示导航栏。

    问题原因:跳转至登录页的地方添加了NavigationPage/”。

    解决方式:到登录页的.xaml.cs文件下添加下方代码,用于隐藏头部导航栏。

    NavigationPage.SetHasNavigationBar(this, false);

     

    • 7 使用UserDialogs框架提示空指针

    问题现象:在项目共有文件程序中调用UserDialogs.Instance.XXX提示空指针。且类型定义中只有一个方法。 

    问题原因:UserDialogs未实例化。

    解决方式:在不同版本(安卓、IOS等)程序的活动中进行实例化操作。下图以安卓为例:

     


    •  8 调用Picker不显示数据内容

    问题现象:数据集合已经成功获取,并且数据绑定无误,但是实际运行时,不显示数据列表。

    问题原因:定义的数据集合为List 、IList时,控件Picker不识别。

    解决方式:将数据集合类型定义为ObservableCollection。

     

    • 根据状态动态显示标签内容

         根据具体的值,动态显示内容,类似多分支选择语句,以下以Label标签的IsEnabled属性作为判断条件,(也可用Label标签的Text属性判断,具体依情况而定)

    <Label Text="" IsEnabled="{Binding IsPaid}" Style="{StaticResource LabelDefault}">

    <Label.Triggers>
    <Trigger TargetType="Label" Property="IsEnabled" Value="True">
    <Setter Property="TextColor" Value="Green" />
    <Setter Property="Text" Value="已付" />
    </Trigger>
    <Trigger TargetType="Label" Property="IsEnabled" Value="False">
    <Setter Property="TextColor" Value="Red" />
    <Setter Property="Text" Value="未付" />
    </Trigger>
    </Label.Triggers>

    </Label>

     

    • 10 头部导航栏(标题栏)不显示标题

    问题现象:在Tab切换页面时,头部导航栏只有背景色,没有标题,且已经确认给每个子页面指定了Title,并在.xaml布局中添加了标题绑定。

    问题原因:未显示标题的头部导航栏可能是属于父布局的NavigationBar,所以在子页面指定标题无效。

    解决方式:在Tab的.xaml.cs文件中重写OnCurrentPageChanged()方法,并添加以下语句,让标题显示为当前子页面的标题。(此处Tabpage页继承的是BottomBarPage

    Title = CurrentPage?.Title;

     

    • 11 页面跳转至登录页

       问题现象:应用跳转至登录页后,再次登录,并重复以上步骤二至三次,点击系统返回键返回,会返回出多个登录页。

       问题原因:从应用跳转至返回页时,用以下代码跳转:,这种方式跳转逻辑如下:

       解决方式:页面跳转时,跳转路径前加上斜杠,

               如 await NavigationService.NavigateAsync("/NavigationPage/LoginPage", null, true);


    • 12 网络请求接收JSON数据不成功

       问题现象:网络请求接口返回数据正常,用JObject接收数据时为空。或者用Model接收失败。

       问题原因:

       解决方式:a、尽量使用Model模型来接收数据,且在模型定义中不能出现“virtual”关键字: 

                

                        b、接口不能直接初始化实例:

        


    •  13 列表数据不指定行高数据显示不完整

    问题现象:当不给ListView指定行高时,Item信息显示不完整,但是行高不确定是多少。 

    问题原因:未指定HasUnevenRows字段为true。这个字段能够让Item行高自适应内容的高度。

    解决方式:在布局中给ListView添加“HasUnevenRows属性为True。


    • 14 获取中文首字母异常

    问题现象:获取中文首字母时,抛出如下异常信息:

     

     

     

    问题原因未集成中文包(IOS一般不会有这个问题)。

    解决方式右键安卓项目,选择“属性”按钮,在“Android选项”栏目中选择“CJK”即可。

     

     

    •  15 页面跳转传递参数异常

    问题现象:当页面之间通过NavigationParameters 进行参数传递时,参数解析失败。

    问题原因:参数过大,通常是直接将一个完整对象传递到另一个页面作为参数会导致次问题。

    解决方式:借助临时变量,去除参数中不必要的冗余字段值即可。




    附注:以上问题均为本人开发过程中遇到的一些问题,在此整理以供大家参考。问题原因及解决方式纯属个人意见,若有不当之处还望多多指出,不胜感谢!
    展开全文
  • Xamarin介绍

    千次阅读 2017-09-13 14:50:07
     本文非Xamarin使用详解,也没什么有用的干货,只是给不知道Xamarin到底是什么的大家提供一点点微不足道的小介绍,看完以后啥收获都没有也不是没可能的(*/ω\*)。so......ε=ε=ε=ε=ε=┌(つ•̀ω•́)つ...
  • 一、课程介绍 英文原文:C# is the best language for mobile app development.Anything you can do in Objective-C, Swift or Java, you can do in C#。 中文译意:C#是移动应用程序开发的最佳语言。...
  • xamarin官方文档,详细介绍xamarin android使用控件,开发实例,及多种智能开发
  • 1. 什么是Xamarin

    2020-04-19 19:33:09
    Xamarin 是一个 .NET 开源的平台,主要用于通过 .NET 构建 IOS 、 Android 以及 Windows App 。利用 Xamarin 我们可以管理不同平台 APP 的共享代码与基础平台代码的通信,并且 Xamarin 上开发的 APP 是在托管环境中...
  • Xamarin.Form与Xamarin.Android或Xamarin.IOS的区别简述: 可能刚刚接触Xamarin的人来说,对于这个概念比较的模糊,认为这说的不都是同一个东西吗?事实并不是这样的,我们先来说说Xamarin.Android和Xamarin.IOS吧...
  • xamarin 当我们谈到用于应用程序开发的软件和工具时,对于开发人员来说有很多选择。 为开发过程引入了不同的框架,工具和软件,以使该方法变得简单,流畅和快速。 一些工具和框架统治着整个行业,而另一些则从市场...
  • Xamarin android如何调用百度地图呢? 首先我们要区分清楚,百度地图这是一个广泛的概念,很多刚刚接触这个名词”百度地图api”,的确是泛泛而谈,我们来看一下百度地图的官网: android上使用百度地图的有...
  • Xamarin for android 小白教程-HelloWorld !

    万次阅读 2018-03-07 17:42:13
     今天带来了我写的xamarin 安卓的教程!~首先简单的介绍一下XamarinXamarin始创于2011年, 旨在使移动开发变得难以置信地迅捷和简单! Xamarin由许多著名的开源社区开发者创立和参与,而且也是Mono项目的主导者...
  • C# 使用Xamarin开发Android应用程序

    千次阅读 2018-06-12 16:26:19
    C#使用Xamarin开发可移植移动应用终章(11.获取设备信息与常用组件,开源一个可开发模版.)摘要: 前言 系列目录 C#使用Xamarin开发可移植移动应用目录 源码地址:https://github.com/l2999019/DemoApp 可以Star一下,随意...
  • 前面几天也写了一些signalr的例子,不过都是在Web端,今天我就来实践一下如何在xamarin android中使用signalr,刚好工作中也用到了这个,也算是总结一下学到的东西吧,希望能帮助你们,更快地熟悉使用xamarin ...
  • xamarin,并不流行,但其实已经存在好多年了,之前还要收费,现在免费,也更成熟了。不得不说,xamarin的目标是非常好的,一套代码覆盖所有手机平台,可惜是经过这么多年还是发展太慢,应用市场上是通过xamarin开发...
  • 由于新项目需要开发APP,团队内部都是C#开发工程师,还需要考虑安卓和iOS两个版本,被安排学习VS2015里面的Xamarin.Froms开发。想起微软刚收购Xamarin后,大肆宣传Xamarin跨平台开发的牛逼,自己本行又是C#,也就...
  • VS2015 Xamarin安装

    千次阅读 热门讨论 2018-03-26 22:03:51
    )开发Android,必须安装Xamarin。其实这个过程复杂而又简单,可能因为RP不好就GG……要使用用或者想尝试VS2015开发Android,就要按照我们的教程来吧!本人装了好多次Xamarin,保证绝对可用。1.安装JDK,安装到默认...
1 2 3 4 5 ... 20
收藏数 17,717
精华内容 7,086
关键字:

xamarin