使用xml进行布局有什么好处?

时间:2011-07-05 01:22:42

标签: android xml android-layout

我已经完成了一些教程等,并且发现我可以在代码中实现定义所有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的代码,还应该考虑哪些额外的考虑因素?

4 个答案:

答案 0 :(得分:7)

  

为此使用XML有哪些可维护性优势?

  1. 从演示中分离逻辑。当您需要重构某些代码时,这对大型项目有帮助。如果它与UI紧密耦合,如果大部分表示逻辑都在代码中,那么这项工作很容易变得非常耗时。
  2. XML的结构与用户界面的结构很好地相关,即树状结构。
  3.   

    为此使用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上发布了公告/演示,显示正在进行重大改进......等等。