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

Che*_*eng 14 java xml android android-layout

我来自Java Swing背景.我是否知道为什么使用XML创建GUI在Android中是一个很好的做法?例如,而不是编写代码(这使我感觉更舒服,因为我使用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);
   }
}
Run Code Online (Sandbox Code Playgroud)

我们用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);
    }
}
Run Code Online (Sandbox Code Playgroud)

在教程中,它指出,

使用比在编程布局中使用的更简单的结构和语法,这种结构使得快速构建UI变得非常容易.

但是,我并没有真正购买这个想法,因为我觉得创建一个单独的XML文件更加麻烦.

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

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

Rom*_*Guy 24

与Java代码相比,使用XML布局有许多优点.您可以轻松参考字符串,绘图,尺寸,主题等.但最大的优势是自动支持多种配置.在不更改代码的情况下,只需在layout-land /和layout-port /中使用XML布局,就可以为横向和纵向设置不同的布局.你也可以这样做,使布局适应不同的分辨率,语言等.

  • 如果XML布局具有许多优点,那么为什么在GUI桌面应用程序开发中通过XML进行GUI编程仍然不常见? (2认同)
  • 这些优点是Android特定的,而不是其他工具包. (2认同)

Com*_*are 8

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

考虑到单独的.NET开发可能超过了所有其他桌面GUI开发的组合,我认为它已经"成为GUI桌面应用程序开发人员的常见做法".

此外,使用XML进行GUI是更大的"声明性UI"趋势的一个方面,它具有许多非XML形式,例如用于Qt的JSON-ish QML.AFAICT,所有主要的GUI开发都在逐步将这种声明性标记整合到一种形式或方式中.