为什么使用XML创建GUI在Android中是一个很好的做法

2022-09-03 17:38:55

我来自Java Swing背景。我能知道为什么在Android中使用XML创建GUI是一个很好的做法吗?例如,而不是编写代码(这让我在使用Swing桌面应用程序时感觉更舒服)

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class HelloAndroid extends Activity {
   /** Called when the activity is first created. */
   @Override
   public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       TextView tv = new TextView(this);
       tv.setText("Hello, Android");
       setContentView(tv);
   }
}

我们以XML方式编写代码。

import android.app.Activity;
import android.os.Bundle;

public class HelloAndroid extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}

在教程中,它指出,

使用此结构,可以非常轻松地使用比在编程布局中使用的更简单的结构和语法来快速构建 UI。

但是,我并不真正接受这个想法,因为我觉得创建一个单独的XML文件更麻烦。

任何人都可以举一个真实的例子(在Android的意义上),为什么使用XML来构建GUI比裸露的Java代码更优越?

如果通过XML进行GUI编程真的是一件好事,为什么它仍然没有成为GUI桌面应用程序开发人员的常见做法?


答案 1

与 Java 代码相比,使用 XML 布局具有许多优点。您可以轻松参考字符串,可绘制对象,尺寸,主题等。但最大的优势是自动支持多种配置。在不更改代码的情况下,您可以通过在 layout-land/ 和 layout-port/ 中拥有 XML 布局来为横向和纵向提供不同的布局。您可以执行相同的操作来使布局适应不同的分辨率,语言等。


答案 2

如果通过XML进行GUI编程真的是一件好事,为什么它仍然没有成为GUI桌面应用程序开发人员的常见做法?

考虑到.NET开发本身可能超过了所有其他桌面GUI开发的总和,我认为它已经“成为GUI桌面应用程序开发人员的常见做法”。

此外,将XML用于GUI是更大的“声明性UI”趋势的一个方面,它具有许多非XML形式,例如Qt的JSON-ish QML。


推荐