我已经完成了一些教程等,并且发现我可以在代码中实现定义所有UI组件的相同结果。
例如:
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
TextView tv = new TextView(this);
tv.setText("hello");
LinearLayout ll = new LinearLayout(this);
ll.addView(tv);
setContentView(ll);
}
相当于
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
+
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/textview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="@string/hello"/>
为此使用XML有哪些性能/可维护性优势?
如果程序员更喜欢使用基于XML的代码,还应该考虑哪些额外的考虑因素?
答案 0 :(得分:7)
为此使用XML有哪些可维护性优势?
为此使用XML有哪些性能优势?
这一切都取决于我想的实施。我怀疑是否有任何可观的性能差异,但老实说,我不知道该如何明确地说出它们可能是什么。
答案 1 :(得分:4)
您可以参考Why using XML to create GUI is a good practice in Android。
对我而言,我觉得这更像个人品味。我来自Java Swing背景。当我在进行桌面应用程序开发时,我更喜欢创建GUI程序化。
然而,当涉及到Android开发时,我将坚持基于XML的GUI开发,尽管我倾向于使用代码而不是XML。
这是因为,我倾向于遵循大多数青睐的编码风格和神话,这使我很容易获得技术支持和教程。
答案 2 :(得分:2)
编译时,XML布局会转换为Java代码,因此性能应该相同。我更喜欢使用XML,因为很多文档和教程都使用它;这是Android写出UI的方式。此外,XML往往更容易重用。
答案 3 :(得分:2)
XML文件已集成到资源框架中,这意味着您可以轻松地为不同的屏幕尺寸(以及密度,语言等)指定不同的布局。这在Android中很重要,因为设备的多样性。
你当然可以通过编程方式进行此操作,但是你会添加许多不必要的代码膨胀,你的app可能会更难维护。
布局XML编辑器的状态目前是一个问题,但在谷歌IO上发布了公告/演示,显示正在进行重大改进......等等。