java - Android中的动态与XML布局?

标签 java android android-layout netbeans-7 android-xml

我是 Android 开发的新手,并已开始创建自己的 UI。我看到您可以像这样动态地创建它(Dynamic Layouts):

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ScrollView sv = new ScrollView(this);
    LinearLayout ll = new LinearLayout(this);
    ll.setOrientation(LinearLayout.VERTICAL);
    sv.addView(ll);
    TextView tv = new TextView(this);
    tv.setText("Name");
    ll.addView(tv);
    EditText et = new EditText(this);
    ll.addView(et);
    Button b = new Button(this);
    b.setText("Ok");
    ll.addView(b);
}

但我也看到 netbeans 有一个文件 Resources->layout->main.xml。因此,您可以为 UI 创建 XML 布局 (Declaring XML layout):

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="Hello World, AndroidTest"
    />
</LinearLayout>

所以我的问题是我应该使用哪个? Android 开发中动态布局与 XML 布局的推荐和优缺点是什么?

最佳答案

使用布局 XML 资源文件。

首先,资源集(例如,除了 res/layout/ 之外的 res/layout-land/)允许您定义多个 UI 以在不同的环境中使用情况下,系统会根据需要自动选择正确的一种。 Java 中的等价物是一组讨厌的 ifswitch 语句。

其次,有一些工具可以帮助您成功创建这些布局资源。即使 Eclipse 的拖放式 GUI 构建不是您喜欢的(例如,您使用的是 NetBeans),Lint 也会帮助您指出布局中的缺陷,它只会指出布局中的一个子集等效的 Java 代码。

第三,它往往更简洁,所以如果你手动输入这些东西,XML 会减少输入。

第四,您会发现大约 98% 的示例代码将使用布局 XML 文件,并且您在 StackOverflow(和其他支持资源)上找到的所有 UI 答案中大约 98% 将假定您使用布局 XML 文件。虽然您可以自由地避免使用 XML(也许您在小时候受到尖括号的攻击或其他什么),但与大多数 Android 开发人员所做的相比,您将逆流而上,与潮流抗争。

关于java - Android中的动态与XML布局?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11960501/

相关文章:

android - 查询 ContactsContract 以同时获取电子邮件、电话和地址的最佳方法是什么?

android - 如何处理Firebase离线模式和数据推送?

android - java.lang.RuntimeException : caused while executing doInBackground() in Xiaomi device only 错误

java - 每次收到图像时更新窗口

java - HTTPServletResponse 和 ResponseEntity(Spring) 之间的区别?

java - DrawerLayout 和 NavigationView - 未找到属性 'menu'

android - AHBottomNavigation 不改变颜色 Android

android - LinearLayout 未正确调整 ImageView 的大小

java - 数据类型参数旁边的省略号是什么意思?

java - 如何多次手动实例化 viewscoped bean