我是xamarin开发的新手,对于如何在xamarin.forms(portable / shared)中设计UI界面感到有点奇怪
如果我只是设计了xamarin android或xamarin ios,我可以通过拖放来完成我的UI(就像在windows窗体应用程序中),并自动生成UI的代码。但是在xamarin表单中,不支持这个(我们必须使用代码或xaml)。我知道如果我们使用xamarin表单,我们只编码一次,以后可以在android或ios中使用。
然而,这个人花了很长时间来创建UI,是否有可能在xamarin我们在xamarin android / ios porject中创建UI然后只有xamarin表单中的功能代码(可移植或共享)?
我知道这是一个常见的问题,但可以帮助许多新开发者选择使用xamarin而不是..
答案 0 :(得分:13)
在import pickle
class PlayerData:
def __init__(self, user_name, pwd):
self.name = user_name
self.pwd = pwd
#self.pos = 12 #comment this line
self.online = False
self.info = {'gunNum': 0,
'guns': None,
'barrelNum': 0,
'barrels': None,
'health': 100,
'ammos': {'0': {'ammoCurrentCarried': 50,
'ammoName': 'Assault Rifle'},
'1': {'ammoCurrentCarried': 30, 'ammoName': 'Assault Rifle RUS'},
'number': 2
}
}
def create_user_file(user):
file_path = "data/users/" + user.name
f = open(file_path, "w")
pickle.dump(user, f, pickle.HIGHEST_PROTOCOL)
f.close()
def load_user(user_name):
file_path = "data/users/" + user_name
f = open(file_path, "r")
user = pickle.load(f)
f.close()
return user
def register(user_name):
pwd = "ab"
data = PlayerData(user_name, pwd)
create_user_file(data)
def login(user_name):
user = load_user(user_name)
print user.__dict__
name = "dd"
register(name)
login(name)
进行编码时,有Xamarin.Forms
XAML预览:
但是最后,是的,你正在编写事件和数据转换器等等......甚至使用像iOS XAML
这样的工具,你仍然需要做所有的编码来将UI联系在一起
在个人笔记中:我使用的几乎所有组都不会将GUI设计工具用于任何大于一两个屏幕的应用程序。在iOS上,我们避免Interface Builder
& .xib
就像它们是黑死病的原因一样。
答案 1 :(得分:2)
我完全理解你的情况。一个好的开始是一本Xamarin书,你可以免费下载这个页面https://developer.xamarin.com/guides/xamarin-forms/creating-mobile-apps-xamarin-forms/
如果你是使用WPF开发的,那么在Xamarin中你有相同的概念。一个好的开始是尝试使用应用程序来了解结构和应用程序生命周期。您可以在this link找到一组示例和代码。您可以创建表单或使用XAML或代码。有两种方法。我建议你从XAML和C#开始。
我建议您使用Portable项目,这样您就可以与Xamarin项目共享,但与其他类型的项目(例如ASP.NET项目)共享。
答案 2 :(得分:1)
您可以认为设计Xamarin Forms UI就像设计网站一样。
设计网站
设计Xamarin表单。
答案 3 :(得分:0)
Xamarin.Forms非常棒,为了更好地理解XAML,我鼓励您花时间观看这段视频(https://evolve.xamarin.com/session/56e201d2bad314273ca4d813),其中Charles Petzold详细介绍了XAML的工作原理。 在Xamarin Studio o Visual Studio为Xamarin.Forms提供XAML预览器之前,我使用GorillaPlayer(http://gorillaplayer.com/)是免费的,效果很好。 另请参阅Xamarin大学和实例。 James Montemagno是一个你在谈论Xamarin时必须研究的名字,他做了一些非常酷和有帮助的Xamarin Nuget包。 希望我指出你正确的方向。
答案 4 :(得分:0)
我知道你是Xamarin.Forms的新手。我刚接触该框架时所做的是在https://www.xamarin.com/university上学习了几门课程,如果我是对的(这必须足以理解基础知识),它可以免费使用30天。关于预览者,我没有很好的表现。他们经常很慢或不工作。对我而言,通常在手机上进行调试通常会更快。希望这会对你有所帮助。
答案 5 :(得分:0)
即使有一个不错的设计师,我仍然会认为手工编码会更有效:不会产生错误的代码(例如有约束条件:没有在错误的位置设置填充/边距。不需要时没有硬编码的大小等)。
您将更好地理解并且学习曲线很快。
过去,我使用Silverlight和令人惊叹的Microsoft UI设计器Blend来启动XAML。几个月后,我最终遇到了破坏设计器的体系结构(由于在构造函数中注入了依赖性,或者由于设计器难以在外部程序集中发现控件)。这真的很痛苦,我失去了很多生产力。几个月后,我精通XAML,甚至比设计人员的工作效率更高。
如今,Visual Studio对XAML控件很友好。我已经创建了其中的一些(例如具有多个自动列行的网格,用于生成ContentPage.Resource和样式的代码段等)。
这是值得的痛苦。 此外,您将学到很多东西,并对自己的技能更有信心。
尝试几个月:您不会后悔的!
最后但并非最不重要的是,正如其他人建议的那样,即使在iOS中,构建大型应用程序时,我认识的大多数开发人员也不会使用设计器,而是由于代码段,助手,扩展方法等手动编写所有内容。